Re: 有關OleDbCommand的問題

看板C_Sharp (C#)作者 (....)時間20年前 (2005/11/11 23:17), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/4 (看更多)
我將Acess資料庫的資料放到datagrid上... 希望能直接在datagrid上直接修改... 我的程式碼如下: public OleDbDataAdapter myadapter; public DataSet mydataset=new DataSet(); private void Form1_Load(object sender, System.EventArgs e) { string connstring ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=testupdate.mdb"; OleDbConnection conn=new OleDbConnection(connstring); string selectCmd; selectCmd="Select * From test1"; myadapter=new OleDbDataAdapter(selectCmd,conn); label1.Text=""; int num=myadapter.Fill(mydataset,"測試"); label1.Text="共"+num+"筆資料"; datagrid1.SetDataBinding(mydataset,"測試"); OleDbCommand iCmd = new OleDbCommand("Insert into test1 (姓名) VALUES (?)", conn); iCmd.Parameters.Add(new OleDbParameter("姓名", OleDbType.Char, 50)); myadapter.InsertCommand=iCmd; OleDbCommand uCmd = new OleDbCommand("Update test1 Set 姓名=?", conn); uCmd.Parameters.Add(new OleDbParameter("姓名", OleDbType.Char, 50)); myadapter.UpdateCommand=uCmd; OleDbCommand dCmd = new OleDbCommand("DELETE FROM test1 WHERE 姓名=?", conn); dCmd.Parameters.Add(new OleDbParameter("姓名", OleDbType.Char,50)); myadapter.DeleteCommand=dCmd; } private void update1_Click(object sender, System.EventArgs e) { int num=myadapter.Update(mydataset,"測試"); label1.Text="共"+num+"筆資料修改"; } 在執行後... 當我修改datagrid1的資料然後想更新資料庫資料時...卻發生以下錯誤 System.Data.OleDb.OleDbException: 參數 ?_1 沒有預設值。 at System.Data.Common.DbDataAdapter .Update(DataRow[] dataRows, DataTableMapping tableMapping) at System.Data.Common.DbDataAdapter .Update(DataSet dataSet, String srcTable) at testupdate.Form1.update1_Click(Object sender, EventArgs e) in f:\code\c_sharp\testupdate\testupdate\form1.cs:line 177 是我上面的OleDbCommand(黃色部分)的設法設錯呢? 還是OleDbDataAdapter(藍色部分)的寫法有問題呢? 謝謝各位高手的解惑與幫忙...大家是好人><~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.105.116.11 ※ 編輯: sartsky 來自: 203.70.92.27 (11/13 12:23)
文章代碼(AID): #13TBNtlX (C_Sharp)
文章代碼(AID): #13TBNtlX (C_Sharp)