【发布时间】:2017-06-24 09:17:54
【问题描述】:
我有一个数据表,并且我正在实现一个功能,该功能可以判断我的应用程序中的数据表自数据库加载以来是否未更改。
例如没有添加行,没有编辑行,没有删除行,因为它是从数据库加载的(我不关心数据库中的数据发生变化并且没有反映在我的数据表中的情况)
我实现了这样的东西:
'DataTable clean means it has not been changed
Public ReadOnly Property DataTableClean As Boolean
Get
Dim Clean As Boolean = True
For i = 0 To DataTable.Rows.Count - 1
If DataTable.Rows(i).RowState <> DataRowState.Unchanged Then
Clean = False
Exit For
End If
Next
Return Clean
End Get
End Property
这段代码可以完成这项工作,但如果数据表包含大量行,我对性能不太满意。
请问有谁知道某处是否有标志表明数据表是否已更改?
谢谢。
【问题讨论】:
-
我有一个 RowChanged code.msdn.microsoft.com/Working-with-DataTable-2ff5f158 的示例,并且只是将一个具体的类与扩展方法结合起来,以便轻松使用 GetChanges 1drv.ms/u/s!AtGAgKKpqdWjiFTrJbO3P9RZSfNo,这最初是为 C# 代码示例完成的。在 GetChanges 项目中,代码模块 ExtensionMethods.vb 中有一个简单的示例来熟悉扩展。如果您简单地查看在线 C# 版本,这可能也有帮助,这里也可以找到 code.msdn.microsoft.com/Get-changes-for-a-11413e32