2013-02-21 82 views
0

我收到有關ExecuteNonquery is not initialized的錯誤。如何連接數據庫並插入數據

而且我認爲可能會連接到數據庫錯誤,因爲MessageBox沒有出現在執行系統之前。

//Server Connection 
private void ServerConnect() 
{ 

    string ConnString; 
    ConnString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=PLAN.accdb"; 
    TConn = new OleDbConnection(ConnString); 
    TConn.Open(); 
    MessageBox.Show("You Are Connected."); 
} 

//ADD MEMOS 
private void GetMemoList() 
{ 

    string query; 
    DataSet ds = new DataSet(); 
    query = "SELECT MEMOS_ID,DATE,TIME,MEMOS FROM TBLMEMOS ORDER BY DATE ASC"; 
    OleDbDataAdapter da = new OleDbDataAdapter(query, TConn); 
    da.Fill(ds); 
    this.dgv1.DataSource = ds.Tables[0]; 
} 

private void AddMemo(string MemoDate, string MemoTime, string Memos) 
{ 

    string acc; 
    acc = "INSERT INTO TBLMEMOS (DATE,TIME,MEMOS) VALUES ('" + MemoDate + "','" + MemoTime + "','" + Memos + "')"; 
    OleDbCommand cmd = new OleDbCommand(); 
    cmd.CommandText = acc; 
    cmd.Connection = TConn; 
    cmd.ExecuteNonQuery(); 
} 

private void btnAddMemos_Click(object sender, EventArgs e) 
{ 

    AddMemo(this.dtpDate.Value.ToShortDateString(), this.dtpTime.Value.ToShortTimeString(), this.txtInfo.Text.Trim()); 
    GetMemoList(); 
    txtInfo.Clear(); 
} 
+0

您正在'ServerConnect'方法中創建並打開連接。除非'TConn'是一個全局變量,並且您可以在任何其他方法之前調用ServerConnect方法,否則您的'OleDbCommand'將不會有打開的連接來執行。 – Tim 2013-02-21 01:31:02

+0

你能幫我怎麼連接服務器連接im初學者連接數據庫先生謝謝 – Timart 2013-02-21 01:41:41

+0

先生我得到了它的謝謝但我得到了另一個錯誤「沒有價值給予一個或多個參數要求」 – Timart 2013-02-21 01:48:40

回答

1

嘗試添加像這樣的參數。

cmd.Parameters.Add("p1", OleDbType.Char).Value = MemoDate ; 
+0

從我+1,你做不需要擔心,如果有人檢查它,或者將其標記爲答案。你可能會給出很多答案。 – Aristos 2013-02-21 08:24:12