有一个命令可以删除数据表Delete();
中的行但这只是删除它并没有像向量或arraylist一样向下移动。
例如,数据表中有3行。
第1行,数据1
第2行,数据2
第3行,数据3。
如果我删除第2行,它就像
第1行,数据1
第2行,RowStatus =已删除
第3行,数据3
如何将第3行向上移动到第2行???
我有办法,但不是正确的。
我的一个是创建一个新的数据表,克隆它并通过检查每一行的行状态将每一行移动到该表。然后清除实际的数据表,并从临时数据表中复制回所有数据。
必须有更好的方式......任何人?
答案 0 :(得分:8)
您必须在DataTable上调用AcceptChanges来提交所做的更改。执行此操作将删除标记为已删除的行。 (以及对DataTable所做的任何其他更改)
答案 1 :(得分:1)
Delete
方法在数据库中标记要删除的行,并且实际上并未从DataTable中删除它。
DataTable.Rows.Remove
方法将以您希望的方式从内存中的DataTable中删除该行。
答案 2 :(得分:0)
是的,您必须使用DataTable.AcceptChages()方法来反映对DataTable的更改。
答案 3 :(得分:-1)
为什么你要向上移动?原谅我的好奇心; - )