无法将数据集保存回数据库
本文关键字:数据库 保存 数据集 | 更新日期: 2023-09-27 17:56:27
情况:WPF 应用程序,.NET4,与设计器一起创建的数据源(MS SQL Server 2008)
问题:读取数据效果很好:
adapter.Fill(ds);
DataSet
填充了数据,即绑定到数据网格的表。当我编辑任何DataGrid
(例如添加一行)并在 WPF 的DataGrid
中按"Enter"时,新行已成功添加。
然后我打电话:
ds.AcceptChanges();
adapter.Update(ds);
但是不会对基础 MS SQL Server 2008 数据库进行任何更改。这太疯狂了,有人知道问题出在哪里吗?
在Update
之后调用AcceptChanges
,或者实际上根本不调用。
http://msdn.microsoft.com/en-us/library/system.data.dataset.acceptchanges.aspx
AcceptChanges
数据集中的所有行标记为未更改,因此Update
看不到任何更改,也不会更新数据库。
是否已指定更新并在数据适配器中插入 sql 语句/存储进程?
要查看的另一件事是来自 dataAdapter (int) 的返回值,即成功更新的行数。这是带着价值回来的吗?
您可以发布数据适配器初始化代码吗?
这仍未解决,我有同样的问题。
在表适配器上,您可以执行表适配器名称。更新(数据集。数据集名称)。
但是,这不会写入数据库。
命名的数据集只知道接受更改,而不知道点运算符之后的更新。
所以,这是四年未解决的...还有其他类似的帖子...
如果它没有任何区别,请不要回答这个问题 - 这里的接受更改无关紧要。
真诚地
安 迪
我发现当使用带有数据网格的表单时也是如此(在 Server 2012 操作系统下的不同机器上,在 Windows 窗体应用程序中使用 VS 2013 Express for Windows 桌面)。
我添加了一个按钮,按钮的点击事件调用更新方法:
this.customersTableAdapter.Update(this.database1DataSet);
MessageBox.Show("Save was done.");
我添加消息框只是为了看到发生了 s.th,因为我不再信任这个IDE。
在数据网格中所做的更改反映在窗体中。没有来自VS或Windows的投诉。我再次运行它:数据没有保存到数据库中。
它只是一个有缺陷的东西,不值得它得到所有的关注。
也许这一切都是设计使然。
再见
安 迪