我正在开发一个基于桌面的应用程序。在该应用程序中,我必须只获得修改的行以在我的数据库中保存/更新。因为我使用了以下代码:
DataTable modifiedTable = dt.GetChanges(DataRowState.Modified);
没关系。但在这里,我只需要更改那些列。我不希望该列没有任何变化。所以,我可以记录原始值以及修改/新值。 (ms sql中的改变数据捕获(CDC)的提取器)。
我该怎么做?
答案 0 :(得分:0)
您可以使用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的原因之一)