C# DataSet、DataAdapter——如何更改行状态以调用 INSERT?

标签 c# dataset

我正在尝试实现一个“另存为”按钮,以将 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/

相关文章:

c# - 将数据集转换为整数

c# - StreamGeometry 与 WPF C# 中的 DrawingContext.DrawLine

c# - 如何在 OfType() 之后使用 Include()?

c# - 如何在 C# 中将列添加到加载了过时架构的数据集中?

c# - 如何将 DataSet/DataTable 转换为某种类型的通用列表?

delphi - 读取 DataSet 结构而不读取其数据

.net - 在 SSMS 中快,在应用程序中慢 - 为什么这个数据集需要这么长时间才能填充?

c# - 如何在自定义 ASP.NET 控件中使用 ScriptManagerProxy?

c# - 服务引用(VS2013)在命名空间中使用元素名称声明了多个故障

c# - 给定 N 个容器找到 blob