如何操作数据集中的原始版本字段值



如何在数据集行中操作写入原始值?

为什么我需要这样做?

我需要这样做,因为我们的新版本数据库已经改变了它的结构。然而,仍然有客户端使用旧的结构发送数据集。因此,我动态地添加了必需的字段,并根据需要设置了它们的值。然后,我应该能够像往常一样使用数据适配器更新数据库。

为了使DELETE操作工作,我应该能够设置数据集中主键字段的原始版本,因为DataAdapter使用原始版本来构造DELETE命令的参数值。

然而,我还没有找到任何方法来做到这一点。下面的代码甚至不能编译:

ds.Tables["Table"].Rows[0]["NewField",  DataRowVersion.Original]=23;

任何想法?

修改现有的数据库表模式,重命名/复制表并进行与新表兼容的应用程序更改,当现场没有流量时执行后台操作。

用原表更新新表,用主键插入数据。

在执行此操作后,原始数据再次进入更改表,使代码激活并将更改表重命名为原始表。

调用DataTable.AcceptChanges()方法,这使得当前/建议版本为原始版本。希望它对你有用。

1。更新:我能够通过以下步骤获得

  • 创建与原始模式相同的新数据表(例如dt2)datatable(例如dt1) +新标识列
  • 用原始填充dt2从dt1的值,也填充新的列值所需的
  • Call accept change on dt2(new datatable)
  • 现在将dt1的电流值复制到dt2

所以你有当前值和原始值,包括新列的原始值。

我做了一小段代码,如果需要可以分享,但逻辑很简单。

相关内容

最新更新