DataTable中删除行的记录问题。
1、
datatable中的记录可能有两种。
一种是从数据库直接读出来的。
一种是通过form操作下,通过Rows.Add 新增的。
如果我想删除该表的所有记录的话。
如果在第一种情况下,可以用foreach,for循环。没问题
如果是第二种情况的话,就不行了。用for循环也不行。
如果两种情况都有的话,那又该如何处理呢?
2、假设我所有的记录都是直接从数据库中读出来的。我通过for循环,为每行都作了delete以后,
我在调用 dtBody.NewRow() 就发生了 DeletedRowInaccessibleException 异常。
这个怎么处理啊?
问题点数:20、回复次数:4Top
1 楼xrascal(横刀夺爱)回复于 2006-06-08 08:55:53 得分 8
如果我想删除该表的所有记录的话。
如果在第一种情况下,可以用foreach,for循环。没问题
=====> 用 DataTable.Clear() 方法。
Top
2 楼yiming0755()回复于 2006-06-08 08:57:48 得分 8
第一个问题:
不管属于哪种情况,只要datatable中的数据存在表的索引值,就可以删,
任何方法都可以,不关心记录是绑定的,还是rows.add()进来的.
第二个问题,我这么和你说:你的表中有行已经被删除了,而你所看到的表却没有做改动,实际上,有可能你所操纵的对象已经不存在了,你设想一下,你的表本来只有一行,而你却把他删了,这个表已经不存在了,你还能newRow()??
实际上,你操作datatable这个虚拟的表,是没有任何意义的,它在任何时候都因该和数据库映射,你只是从它身上得到数据而已,操作数据是要在表示层控件上实现。Top
3 楼jilate()回复于 2006-06-08 08:58:44 得分 0
如果调用了clear方法的话,是清楚所有的数据
并不是给所有的记录作delted标记啊
因为我需要通过这个标记进行数据库的更新操作的
所以不能用clearTop
4 楼WeekZero(∮小气的鬼∮)回复于 2006-06-08 09:05:08 得分 4
datatable.remove(datatable.rows[i])
试Top




