数据行删除问题

时间:2010-11-15 09:28:51

标签: c# datatable

有一个命令可以删除数据表Delete();

中的行

但这只是删除它并没有像向量或arraylist一样向下移动。

例如,数据表中有3行。

第1行,数据1

第2行,数据2

第3行,数据3。

如果我删除第2行,它就像

第1行,数据1

第2行,RowStatus =已删除

第3行,数据3

如何将第3行向上移动到第2行???

我有办法,但不是正确的。

我的一个是创建一个新的数据表,克隆它并通过检查每一行的行状态将每一行移动到该表。然后清除实际的数据表,并从临时数据表中复制回所有数据。

必须有更好的方式......任何人?

4 个答案:

答案 0 :(得分:8)

您必须在DataTable上调用AcceptChanges来提交所做的更改。执行此操作将删除标记为已删除的行。 (以及对DataTable所做的任何其他更改)

答案 1 :(得分:1)

Delete方法在数据库中标记要删除的行,并且实际上并未从DataTable中删除它。 DataTable.Rows.Remove方法将以您希望的方式从内存中的DataTable中删除该行。

答案 2 :(得分:0)

是的,您必须使用DataTable.AcceptChages()方法来反映对DataTable的更改。

答案 3 :(得分:-1)

为什么你要向上移动?原谅我的好奇心; - )