DataTable.GetChanges() 是否可以通过引用获取行?

DataTable.GetChanges() is it possible to get rows by reference?

Dim dtModifiedData As DataTable = dtMain.GetChanges(DataRowState.Modified)

正如函数的定义所说,它确实在从主 table.

过滤后复制行

是否可以通过引用获取它们?

是:

Dim modifiedRows = From row In dtMain.AsEnumerable()
                   Where row.RowState = DataRowState.Modified

如果您在 DataTable 中需要它,那是不可能的,因为 DataRow 总是属于一个 DataTable。如果您尝试将它从一个移动到另一个,您将得到一个例外。您需要一个像 ImportRow 这样的方法,它使用源行中的值创建一个新的 DataRow。出于同样的原因 CopyToDataTable 在上面的 LINQ 查询中也会创建新的 DataRows.