簡體   English   中英

具有更改數據的DataTable行

[英]DataTable row with changed data

我正在開發一個基於桌面的應用程序。 在該應用程序中,我只需要獲取修改后的行即可在數據庫中保存/更新。 為此,我使用了以下代碼:

DataTable modifiedTable = dt.GetChanges(DataRowState.Modified);

沒關系。 但是在這里,我只需要更改的那些列。 我不希望該列沒有任何更改。 因此,我可以記錄原始值以及修改/新值。 (提取程序,例如ms sql中的Change Data Capture(CDC))。

我該怎么做呢?

您可以使用OriginalValue和DataRow列值的當前版本,然后檢查它們是否不同

For Each row in table.Row
    For Each col in table.Columns
       Dim original = row[col.ColumnName] = row[col.ColumnName, DataRowVersion.Original].ToString()
       Dim  changed = row[col.ColumnName] = row[col.ColumnName, DataRowVersion.Current].ToString()

       ' Compare and prepare the SQL command to update only this changed column'
    Next
Next

但是現在您面臨最大的問題。 您需要編寫代碼以僅更新該列。
(順便說一句,這是使用SqlDataAdapter和SqlCommandBuilder的原因之一)

請參閱有關DataRowVersion枚舉的MSDN文章

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM