我想在datagrid上完成删除,插入等功能后
然后把修改写回数据库,我新添一行没有问题,但是删除一行后adapter.update(dataset)后
就报错了。我使用的是commandbuilder
代码是:
...
ds=new DataSet();
string sql="select OccupationID,Occupationname from t_Occupation ";//datagrid 上显示的内容,Occupationname是主键
adapter=new OleDbDataAdapter();
adapter.SelectCommand=new OleDbCommand(sql,con);
OleDbCommandBuilder custCB = new OleDbCommandBuilder(adapter);
adapter.Fill(ds,"occupation");
...
//
我在datagrid上新增一行后
执行this.adapter.Update(ds,"occupation");后正确,修改写回数据库
但是当在datagrid上删除一行后就报错了:
未处理的“System.InvalidOperationException”类型的异常出现在 system.data.dll 中。
其他信息: 对于不返回任何键列信息的SelectCommand 不支持 DeleteCommand 的动态 SQL 生成。请指导!
然后把修改写回数据库,我新添一行没有问题,但是删除一行后adapter.update(dataset)后
就报错了。我使用的是commandbuilder
代码是:
...
ds=new DataSet();
string sql="select OccupationID,Occupationname from t_Occupation ";//datagrid 上显示的内容,Occupationname是主键
adapter=new OleDbDataAdapter();
adapter.SelectCommand=new OleDbCommand(sql,con);
OleDbCommandBuilder custCB = new OleDbCommandBuilder(adapter);
adapter.Fill(ds,"occupation");
...
//
我在datagrid上新增一行后
执行this.adapter.Update(ds,"occupation");后正确,修改写回数据库
但是当在datagrid上删除一行后就报错了:
未处理的“System.InvalidOperationException”类型的异常出现在 system.data.dll 中。
其他信息: 对于不返回任何键列信息的SelectCommand 不支持 DeleteCommand 的动态 SQL 生成。请指导!
保证OleDbDataAdapter有deleteCommand字符串;从楼主的"对于不返回任何键列信息的SelectCommand 不支持 DeleteCommand 的动态 SQL 生成。
"好象是没有赋 DeleteCommand 字符串
而且我也用select选出来了