从 WPF 数据网格中的数据集更新数据库
Posted
技术标签:
【中文标题】从 WPF 数据网格中的数据集更新数据库【英文标题】:Updating database from dataset in WPF datagrid 【发布时间】:2016-12-09 18:51:08 【问题描述】:我已经阅读了所有类似的主题,并且我认为我复制了示例,但代码仍然无法正常工作
绑定网格:
sql="select * from myTable";
ds = new System.Data.DataSet();
OleDbDataAdapter adp = new OleDbDataAdapter(sql,dbConnection._connection);
adp.Fill(ds);
ds.AcceptChanges();
grdTable.ItemsSource = ds.Tables[0].DefaultView;
保存数据(为简单起见,在此处双击,可以在按钮单击时)
private void grdTable_DoubleClick(object sender, MouseButtonEventArgs e)
adp.Update(ds.Tables[0]);
数据显示正常,但更新语句报错: “当传递带有修改行的 DataRow 集合时,更新需要有效的 UpdateCommand。”
我看到的所有示例都不需要创建 UpdateCommand。
【问题讨论】:
【参考方案1】:您需要使用自动为您生成命令的 OleDbCommandBuilder:https://msdn.microsoft.com/en-us/library/system.data.oledb.oledbcommandbuilder(v=vs.110).aspx
sql = "select * from myTable";
ds = new System.Data.DataSet();
OleDbDataAdapter adp = new OleDbDataAdapter();
adp.SelectCommand = new OleDbCommand(sql, dbConnection._connection);
OleDbCommandBuilder cb = new OleDbCommandBuilder(adp);
adp.Fill(ds);
ds.AcceptChanges();
grdTable.ItemsSource = ds.Tables[0].DefaultView;
有关详细信息,请参阅上面的 MSDN 链接。
【讨论】:
以上是关于从 WPF 数据网格中的数据集更新数据库的主要内容,如果未能解决你的问题,请参考以下文章