【问题标题】:Updating database from dataset in WPF datagrid从 WPF 数据网格中的数据集更新数据库
【发布时间】: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。

【问题讨论】:

    标签: c# wpf datagrid


    【解决方案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 链接。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-06
      • 2011-02-10
      • 2013-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-17
      相关资源
      最近更新 更多