Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法将数据集保存回数据库_C#_.net_Ado.net_Dataset - Fatal编程技术网

C# 无法将数据集保存回数据库

C# 无法将数据集保存回数据库,c#,.net,ado.net,dataset,C#,.net,Ado.net,Dataset,场景:使用设计器创建的WPF应用程序、.NET4、数据源(MS SQL Server 2008) 问题:读取数据效果良好: adapter.Fill(ds); 数据集由绑定到数据网格的数据、表填充。然后,当我编辑任何DataGrid(例如添加一行)并在WPF的DataGrid中按“回车”键时,新行被成功添加 然后我叫: ds.AcceptChanges(); adapter.Update(ds); 但是,对底层MS SQL Server 2008数据库未做任何更改。这太疯狂了,有人知道问题出

场景:使用设计器创建的WPF应用程序、.NET4、数据源(MS SQL Server 2008)

问题:读取数据效果良好:

adapter.Fill(ds);
数据集
由绑定到数据网格的数据、表填充。然后,当我编辑任何
DataGrid
(例如添加一行)并在WPF的
DataGrid
中按“回车”键时,新行被成功添加

然后我叫:

ds.AcceptChanges();
adapter.Update(ds);

但是,对底层MS SQL Server 2008数据库未做任何更改。这太疯狂了,有人知道问题出在哪里吗?

您是否在数据适配器中指定了更新和插入sql语句/存储过程

另一件需要注意的事情是dataAdapter(int)的返回值,它是成功更新的行数。这是带着价值回来的吗


您可以发布数据适配器初始化代码吗

您是否在数据适配器中指定了更新和插入sql语句/存储过程

另一件需要注意的事情是dataAdapter(int)的返回值,它是成功更新的行数。这是带着价值回来的吗


您可以发布数据适配器初始化代码吗

您应该在
更新后调用
接受更改
,或者根本不调用


AcceptChanges
将数据集中的所有行标记为未更改,因此
Update
不会看到任何更改,也不会更新数据库。

您应该在
Update
之后调用
AcceptChanges
,或者根本不调用


AcceptChanges
将数据集中的所有行标记为未更改,因此
Update
不会看到任何更改,也不会更新数据库。

这仍然没有解决,我也有同样的问题。
在tableadapter上,您可以执行tableadaptername.Update(dataset.NameofDataset)。
但是,这不会写入数据库。
命名数据集只知道AcceptChanges,但不知道点运算符之后的更新

所以,这已经四年没有解决了。。。还有其他类似的帖子…
如果没有任何区别,请不要回答此问题,此处的更改与此无关。
真诚地,

Andi

这个问题仍然没有解决,我也有同样的问题。
在tableadapter上,您可以执行tableadaptername.Update(dataset.NameofDataset)。
但是,这不会写入数据库。
命名数据集只知道AcceptChanges,但不知道点运算符之后的更新

所以,这已经四年没有解决了。。。还有其他类似的帖子…
如果没有任何区别,请不要回答此问题,此处的更改与此无关。
真诚地,

Andi

我发现在使用带有datagrid的表单时(在Windows窗体应用程序中的Windows桌面VS 2013 Express的Server 2012操作系统下的另一台计算机上),情况也是如此。
我添加了一个按钮,按钮的单击事件调用更新方法:

this.customersTableAdapter.Update(this.database1DataSet);
MessageBox.Show("Save was done.");  
我添加MessageBox只是为了看到s.th。发生了,因为我不再信任此IDE。
datagrid中所做的更改反映在表单中。没有来自VS或Windows的投诉。我再次运行:数据未保存到数据库。
这只不过是一辆马车,不值得所有人的关注。
也许这一切都是出于设计。
太久了,

Andi

我发现在使用带有datagrid的表单时(在Windows窗体应用程序中的Windows桌面VS 2013 Express的Server 2012操作系统下的另一台计算机上),情况也是如此。
我添加了一个按钮,按钮的单击事件调用更新方法:

this.customersTableAdapter.Update(this.database1DataSet);
MessageBox.Show("Save was done.");  
我添加MessageBox只是为了看到s.th。发生了,因为我不再信任此IDE。
datagrid中所做的更改反映在表单中。没有来自VS或Windows的投诉。我再次运行:数据未保存到数据库。
这只不过是一辆马车,不值得所有人的关注。
也许这一切都是出于设计。
太久了,

Andi

您在表中创建了主键吗?在数据库中它是自动递增的,所以没有。这有关系吗?你们在表中创建了主键吗?在数据库中它是自动递增的,所以我并没有。这有关系吗?为什么?更新应该更新SQL数据库,不是吗?更新是静默的,什么也没有发生。对不起。我不小心把答复投了赞成票,没法撤销。更新将所有数据传输回数据集中标记为已修改的数据库。AcceptChanges将所有数据标记为未修改。AcceptChanges()之后,没有标记更多的数据,因此没有更新任何内容。为什么?更新应该更新SQL数据库,不是吗?更新是静默的,什么也没有发生。对不起。我不小心把答复投了赞成票,没法撤销。更新将所有数据传输回数据集中标记为已修改的数据库。AcceptChanges将所有数据标记为未修改。AcceptChanges()之后,没有标记更多的数据,因此不会更新任何内容