Ich habe eine Datentabelle und ich implementiere eine Funktion, die angibt, ob die Datentabelle in meiner Anwendung seit dem Laden aus der Datenbank nicht geändert wurde.Wie überprüft man, ob die Datentabelle nicht geändert wurde?
Zum Beispiel keine Zeilen hinzugefügt, keine Zeilen bearbeitet, keine, da es gelöschten Zeilen aus Datenbank geladen (I kümmern sich nicht um den Fall, wenn die Datenänderungen in der Datenbank und nicht in meiner Datentabelle zum Ausdruck kommt)
I umgesetzt etwas wie folgt aus:
'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
Dieser Code macht den Job, aber ich bin nicht sehr komfortabel mit der Leistung bei der Datentabelle große Anzahl von Zeilen enthält.
Weiß jemand bitte, wenn es irgendwo eine Flagge gibt, die anzeigt, ob die Datentabelle geändert wurde oder nicht?
Danke.
Ich habe ein Beispiel für RowChanged https://code.msdn.microsoft.com/Working-with-DataTable-2ff5f158 und schlug nur eine konkrete Klasse mit Erweiterungsmethoden gekoppelt, um es einfach zu machen, mit GetChanges https zu arbeiten://1drv.ms/u/s!AtGAgKKpqdWjiFTrJbO3P9RZSfNo, das ursprünglich für ein C# -Codeproben erstellt wurde. Im GetChanges-Projekt, Codemodul ExtensionMethods.vb gibt es ein einfaches Beispiel, um sich mit den Erweiterungen vertraut zu machen. Wenn Sie einfach die C# -Version online überprüfen, die auch hier hilfreich sein kann, https://code.msdn.microsoft.com/Get-changes-for-a-11413e32 –