Re: 有關OleDbCommand的問題
我將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)
討論串 (同標題文章)
完整討論串 (本文為第 2 之 4 篇):
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章