我定义了 2 个数据集和 2 个数据适配器(每个数据集一个)。创建后,我为 2 个 dataAdapter 中的每一个定义了一个 SqlCommandBuilder。到这里一切都很好。
我可以使用 dataAdapter1.Update(dataSet1) 从数据库中很好地添加、修改、删除。但不是按这个顺序:删除、添加、修改。
这是第一个数据集、dataAdapter 和 sqlCommandBuilder 的代码:
string sql = "SELECT * From localitati";
da1 = new System.Data.SqlClient.SqlDataAdapter(sql, con);
da1.Fill(ds1, "localitati");
cmdBuilder1 = new SqlCommandBuilder(da1);
第二个:
sql = "SELECT * From sucursale";
da2 = new System.Data.SqlClient.SqlDataAdapter(sql, con);
da2.Fill(ds2, "sucursale");
//face automat select, insert ,etc !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
cmdBuilder2 = new SqlCommandBuilder(da2);
有什么想法为什么会发生这种情况吗?
你提供的信息是没有用的。但我可以解释这个错误的含义。
用 ADO.Net 编写的每个更新命令的形式如下:
Update col1, col2 where col1=col1value AND col2=col2value
当从数据库中选择列时,ADO.Net 会保留该列的值。当它执行更新时,条件是提交时没有任何列发生更改。
您看到错误的原因是因为在执行选择和调用之间数据库行已更改da2.UpdateChanges(ds2)
。如果您查看逻辑,也许您已将行的值选择到两个单独的数据集(或两个不同的线程中),并在执行选择后对其执行更新。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)