作者sartsky (....)
看板C_Sharp
标题Re: 有关OleDbCommand的问题
时间Fri Nov 11 23:24:20 2005
我将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)