我有两个具有相同模式的数据表,我想得到它们之间的差异。我正在申请
Merge
为了这个。代码更容易阅读,下面是一个小示例:
//Create first datatable
var o = new DataTable{Columns = { "id", "value"}};
//Add a datarow
o.Rows.Add(1, "test");
//Set PK
o.PrimaryKey = new[]{o.Columns[0]};
//Set RowState to Unchanged
o.AcceptChanges();
//Create copy of first datatable
var m = o.Copy();
//Change a value
m.Rows[0]["value"] = "test2";
//Set RowState to Unchanged
m.AcceptChanges();
//Merge
o.Merge(m);
直到合并,一切都按预期进行;我有两个数据表,每一行都有相同的
id
,但情况不同
value
(“测试”和“测试2”)。
在合并之后,我需要datatable
o
要有一个id=1且value=“test2”的行。这是真的。我还以为一排会有
RowState="Modified"
. 这不是真的,是真的
RowState="Unchanged"
. 为什么会这样?
我已经读了一些关于你应该打电话问的大致相似的问题的答案
EndEdit()
每排都有。当然这不是答案,这是我们的全部目的
Merge()