如何获取数据集行的特定版本?
Posted
技术标签:
【中文标题】如何获取数据集行的特定版本?【英文标题】:How can I get a specific version of a dataset row? 【发布时间】:2009-06-26 19:33:16 【问题描述】:使用数据集,每一行都有一个名为 hasVersion() 的方法,这对我来说意味着它保留了该行的原始版本和当前版本的副本。如何获得原始行值之一?
我想可以在该行上调用拒绝更改然后检查值,但我宁愿不丢失更改,只需读取值。
【问题讨论】:
【参考方案1】:如果您正在查看特定行,则可以通过 DataRowVersion 枚举通过其中一个重载获取该行值的特定版本,例如
SomeDataRow[0, DataRowVersion.Original] //by index
SomeDataRow["ColumnName", DataRowVersion.Original] //by column name
除此之外,您可能还想在数据表上使用GetChanges() 方法。传入DataRowState(在您的情况下为DataRowState.Modified),然后使用上述内容获取已更改的任何行的原始值。
【讨论】:
这看起来应该很好用,我得测试一下。当您将强类型数据表作为 datagridview 的数据源时,datagridview 的更改会反映在数据集中吗? 是的。实际上,这是所有 DataSet/DataTables 所固有的,而不仅仅是强类型。 DataSet 包含一个将跟踪更改的 diffgram。假设您有一个绑定到 DataTable 的 DataGridView,那么无论 DataRows 发生什么变化,都会有一个 DataRowState 为“Modified”。 仅供参考 操作问题是“数据集行的特定版本?”不是数据行中列的特定版本 r以上是关于如何获取数据集行的特定版本?的主要内容,如果未能解决你的问题,请参考以下文章