【发布时间】:2016-01-23 04:02:29
【问题描述】:
Dim dtModifiedData As DataTable = dtMain.GetChanges(DataRowState.Modified)
正如函数的定义所说,它确实会在从主表中过滤后复制行。
是否可以通过引用获得它们?
【问题讨论】:
Dim dtModifiedData As DataTable = dtMain.GetChanges(DataRowState.Modified)
正如函数的定义所说,它确实会在从主表中过滤后复制行。
是否可以通过引用获得它们?
【问题讨论】:
是的:
Dim modifiedRows = From row In dtMain.AsEnumerable()
Where row.RowState = DataRowState.Modified
如果您在DataTable 中需要它,这是不可能的,因为DataRow 始终属于一个DataTable。如果您尝试将其从一个移动到另一个,则会出现异常。您需要像ImportRow 这样的方法,它使用源行中的值创建一个新的DataRow。出于同样的原因,上述 LINQ 查询中的 CopyToDataTable 也会创建新的 DataRows。
【讨论】:
SetColumnError。只需使用循环:For Each row In modifiedRows row.SetColumnError(0, "ErroText") Next