datagrid 的更新问题

xztslsz 2006-02-05 04:08:07
按MSDN 中的方法,使用数据适配器和数据集,“更新”按钮的代码如下:
oleDbDataAdapter1.Update(lll1);
MessageBox.Show("Database updated!");
修改datagrid中的数据后,按“更新”按钮,出现一个对话框,内容如下:
“未处理的“System.InvalidOperationException”类型的异常出现在 system.data.dll 中。
其他信息: 当传递具有已修改行的 DataRow 集合时,更新要求有效的 UpdateCommand。”并询问是中断还是继续或帮助,重新做了几次都这样,为什么呀?
...全文
95 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xztslsz 2006-02-15
  • 打赏
  • 举报
回复
已解决
xztslsz 2006-02-05
  • 打赏
  • 举报
回复
我用的是向导,在更新按钮里的代码只有oleDbDataAdapter1.Update(lll1);
MessageBox.Show("Database updated!");两行,请说一下如何修改这些代码,而不是重写
,请帮忙看一下吧,到底为什么不能更新?
boyxia 2006-02-05
  • 打赏
  • 举报
回复
需要用CommandBuilder来生成更新命令,对单个实体表进行CommandBuilder更新的话,需要DataSet中具有和实体表同样的主键等表框架信息
lidong6 2006-02-05
  • 打赏
  • 举报
回复
应该设置oleDbDataAdapter1.UpdateCommand对象.
public static DataSet SelectOleDbSrvRows(string myConnection, string mySelectQuery, string myTableName)
{
OleDbConnection myConn = new OleDbConnection(myConnection);
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter();
myDataAdapter.SelectCommand = new OleDbCommand(mySelectQuery, myConn);
OleDbCommandBuilder cb = new OleDbCommandBuilder(myDataAdapter);

myConn.Open();

DataSet ds = new DataSet();
myDataAdapter.Fill(ds, myTableName);

//code to modify data in DataSet here

//Without the OleDbCommandBuilder this line would fail
myDataAdapter.Update(ds, myTableName);

myConn.Close();

return ds;
}

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧