Delete()和Remove()的区别?

cnjack 2003-04-22 04:58:43
DataRow.Delete()和DataSet.Tables["Table"].rows.Removed()两者的区别?
...全文
864 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianjipei 2010-05-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 erictang2003 的回复:]
简单的讲:
DataRow.Delete() 叫逻辑删除 (并未真正脱离表直到AcceptChanges());
DataRowCollections.Remove(datarow) 叫物理移除 (脱离表再也找不回来!);
[/Quote]



我用remove()后更新数据库无效果
而用delete()可实现删除数据
SW515 2003-04-24
  • 打赏
  • 举报
回复
给我100分吧!
cnjack 2003-04-23
  • 打赏
  • 举报
回复
谢谢楼上的,一个讲得实在是太清楚,清楚到不能再清楚了;
一个是简单明了。
谢谢。
我要怎么给分你们呀
erictang2003 2003-04-22
  • 打赏
  • 举报
回复
简单的讲:
DataRow.Delete() 叫逻辑删除 (并未真正脱离表直到AcceptChanges());
DataRowCollections.Remove(datarow) 叫物理移除 (脱离表再也找不回来!);
SW515 2003-04-22
  • 打赏
  • 举报
回复
DataRow对象没有直接在代码中使用的构造函数,一般是从具有一定结构的DataTable用NewRow()方法来新建一个DataRow对象。一个DataRow根据其是独立的,还是属于某个DataTable,是否修改过,是否被DataTable删除等等不同的情况有不同的状态,由DataRow.RowState属性公开,如下表:

成员名称 说明
======== ====
Added 该行已添加到 DataRowCollection 中,AcceptChanges 尚未调用。Deleted 该行已通过 DataRow 的 Delete 方法被删除。
Deleted 该行已通过 DataRow 的 Delete 方法被删除。
Detached 该行已被创建,但不属于任何 DataRowCollection。DataRow 在以下情况下立即处于此状态:创建之后添加到集合中之前;或从集合中移除之后。
Modified 该行已被修改,AcceptChanges 尚未调用。
Unchanged 该行自上次调用 AcceptChanges 以来尚未更改。

一个DataRow对象刚被创建之后其状态是Detached,是孤立的一个存在,所以建立了DataRow之后在DataRow中的单元填充了数据后还要通过DataTable.Rows.Add(DataRow)方法将此DataRow添加到DataTable,DataRow添加到DataTable后, 这个DataRow的状态就转变为Added。当修改了这个DataRow后,这个DataRow状态转为Modified,当用Modified.Delete()方法删除DataRow后,DataRow状态将转为Deleted,不过此行还存在在DataTable中的,只是状态改变了,这时用DataTable.Rows.Count查看行数,跟删除前是一样的。只有在调用了DataTable.Remove(DataRow)方法后,此DataRow才被从DataTable移除,状态也回复到Detached孤立状态。

一旦调用了DataTable.AcceptChanges()方法后,所有的行将根据不同的状态做不同的处理,Added、Modified、Unchanged将保留当前值,Deleted的行将从DataTable中移除,最后所有的行的状态都置为Unchanged。当DataTable是从DataAdapter.Fill(DataSet,DataTable)方法填充而形成的,Fill()方法将自动调用AcceptChanges()方法,将DataTable的行状态都置为Unchanged。
titicaca 2003-04-22
  • 打赏
  • 举报
回复
MSDN上有详细的讲解
大浪123 2003-04-22
  • 打赏
  • 举报
回复
如果数据行在上一次AcceptChanges调用后被添加到数据表中,在这种情况下,Delete方法才会物理地删除该数据行

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧