我正在尝试实现一个“另存为”按钮,以将 DataSet 中的数据作为 DataAdapter.Filled(),然后插入到数据库中。
DataSet 有 4 个表——1 个父表(单行表),3 个子表。具有外部级联删除/更新约束。我的意图是要求用户提供一个新的主键(复杂),然后尝试告诉 DataAdapter 或 DataSet 将 4 个表中的所有行(以及后续的新行)标记为 DataRowState.Added;但是 DataRow.SetAdded() 抛出异常“只能在 DataRowState.Unchanged 行上设置添加”
有人知道怎么做吗? 也欢迎任何其他有效的“另存为”方法。非常感谢。
编辑: 为了以防万一,DataRelations 已经设置好了。正常的 INSERT、UPDATE、DELETE 和 SELECT 工作完美。
最佳答案
也许这行得通
row.AcceptChanges(); // sets DataRowState.Unchanged
row.SetAdded();
关于C# DataSet、DataAdapter——如何更改行状态以调用 INSERT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4582380/