望穿秋水
管理&技术&业务 项目管理方面:加强通过工具辅助管理,构建Web项目管理系统来协助项目管理。技术开发方面:加强系统分析能力、架构设计能力,时刻把握新技术动态。业务方面:加强需求分析能力,使最终需求来源于客户又高于客户。
有两种方法可以删除DataTable中的DataRow:
Delete方法和Remove方法和RemoveAt方法,其区别是:
Delete方法实际上不是从DataTable中删除掉一行,而是将其标志为删除,仅仅是做个记号,而Remove方法则是真正的从DataRow中删除一行,RemoveAt方法是根据行的索引来删除。
使用方法:
DataRow dr=ds.Tables["table"].Rows.Find("a");
ds.Tables["table"].Remove(dr);

ds.Tables["table"].RemoveAt(index);

ds.Tables["table"].Row[index].Delete();
Question:
今天在实现一个循环删除的功能的时候,用RemoveAt方法来实现,结果出现找不到第X行的错误提示。可见RemoveAt执行以后已经提交,就是如果原来表中有两条记录,那么执行一次RemoveAt(0)之后就只剩下一条记录了,再执行RemoveAt(1)就会报错(其实这个时候还应该执行RemoveAt(0))。所以循环删除的时候最好用Delete方法,这样先做删除标记,然后用table.AcceptChanges()方法统一提交。
posted on 2007-12-19 15:25  望穿秋水  阅读(6283)  评论(2编辑  收藏  举报