2010-11-15 59 views
1

有一条命令删除数据表中的行Delete();数据表行删除问题

但是,这仅仅是删除它不向上移动下面的行像载体或数组列表。

例如,数据表中有3行。

行1,数据1

行2,数据2

第3行,数据3.

如果删除行2,它会像

行1,数据1

行2,RowStatus =已删除

行3,数据3

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

我有一种方法,但它不是正确的。

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

必须有更好的办法..任何人?

回答

7

你必须调用AcceptChanges在数据表提交所做的更改。这样做将删除标记为已删除的行。 (随着到DataTable所做的任何其他更改)

0

是的,你必须使用DataTable.AcceptChages()方法以反映更改到DataTable。

-1

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

+0

是的,我是。我懂了。 – william 2010-11-16 00:34:35

1

Delete方法标记数据库中的删除行,并没有实际从数据表中删除它。 DataTable.Rows.Remove方法将以您想要的方式从内存中的DataTable中删除该行。