如果DataTable
加载了一些数据,如何使用不同的SqlDataAdapter.Update()
方法重复执行多次插入到不同的SQL Server数据库表中?
使用DataTable
将记录插入表1后,不同的SqlDataAdapter
将不会将数据插入表2中,Update()
方法总是返回0而不会抛出异常。
我尝试使用Copy()
的{{1}}和RejectChanges()
方法,但它从不在表2中插入数据。
一些代码:
DataTable
答案 0 :(得分:0)
看看这篇MSDN帖子,了解DataRow.RowState的概念:https://msdn.microsoft.com/en-us/library/ww3k31w0(v=vs.110).aspx
当您在第一个SqlAdapter上调用Update时,所有行都标记为Unchanged,后续Update调用将不再考虑它们。
您可以尝试通过从其中一列读取值并设置相同的值来“触摸”每一行。也许这会导致RowState切换到Modified,以便第二个Update操作再次对所有行起作用。
答案 1 :(得分:0)
也许在第二次调用Update之前尝试在每个DataRow上调用SetAdded?
https://msdn.microsoft.com/en-us/library/system.data.datarow.setadded%28v=vs.110%29.aspx
答案 2 :(得分:0)
通过保持原始DataTable
不变并解决使用DataTable.Copy()
方法创建的每个必需更新的副本而得到解决...如果发布了更好的答案,我会接受而不是...... < / p>