一个DataRow对象刚被创建之后其状态是Detached,是孤立的一个存在,所以建立了DataRow之后在DataRow中的单元填充了数据后还要通过DataTable.Rows.Add(DataRow)方法将此DataRow添加到DataTable,DataRow添加到DataTable后, 这个DataRow的状态就转变为Added。当修改了这个DataRow后,这个DataRow状态转为Modified,当用DataRow.Delete()方法删除DataRow后,DataRow状态将转为Deleted,不过此行还存在在DataTable中的,只是状态改变了,这时用DataTable.Rows.Count查看行数,跟删除前是一样的。只有在调用了DataTable.Remove(DataRow)方法后,此DataRow才被从DataTable移除,状态也回复到Detached孤立状态。
一旦调用了DataTable.AcceptChanges()方法后,所有的行将根据不同的状态做不同的处理,Added、Modified、Unchanged将保留当前值,Deleted的行将从DataTable中移除,最后所有的行的状态都置为Unchanged。adapter.update(),
你所说的remove后,此行的状态已是Detached孤立状态,不属于DataTable,故不会删除数据库中的记录
一旦调用了DataTable.AcceptChanges()方法后,所有的行将根据不同的状态做不同的处理,Added、Modified、Unchanged将保留当前值,Deleted的行将从DataTable中移除,最后所有的行的状态都置为Unchanged。adapter.update(),
你所说的remove后,此行的状态已是Detached孤立状态,不属于DataTable,故不会删除数据库中的记录
博客介绍了DataRow对象在DataTable中的状态变化。刚创建时为Detached,添加到DataTable后变为Added,修改后为Modified,删除时先变为Deleted,调用Remove方法后又回到Detached。调用AcceptChanges方法会根据状态处理行,adapter.update()对Detached状态行不影响数据库记录。
2万+

被折叠的 条评论
为什么被折叠?



