怎样访问数据集中被删除的行
我的程序是这样的
try{
DataTable dt=temDs.Tables["TransportationBillDetail"].GetChanges(DataRowState.Deleted);
for(int dti=0;dti<dt.Rows.Count;dti++)
{
...
访问dt.Rows[dti]["字段"];
...
}
}
catch (Excption k)
{
.......k.Message;
}
在访问dt.Rows[dti]["字段"]时,捕获异常
可是dt确实是获得了两行数据,为什么这两行数据里面没有值呢?高手指点下
问题点数:50、回复次数:16Top
1 楼icebamboo123(努力考个结婚证书)回复于 2006-11-01 16:55:29 得分 0
我要怎么访问这两行数据呢??Top
2 楼Eddie005(♂) №.零零伍 (♂)回复于 2006-11-01 16:59:46 得分 20
try{
DataTable dt=temDs.Tables["TransportationBillDetail"].GetChanges(DataRowState.Deleted).Copy();
dt.RejectChanges();
for(int dti=0;dti<dt.Rows.Count;dti++)
{
...
访问dt.Rows[dti]["字段"];
...
}
}
catch (Excption k)
{
.......k.Message;
}
Top
3 楼dafeng168(我吾系二五仔)回复于 2006-11-01 17:00:29 得分 0
报什么错Top
4 楼yangye1211(杨杨)回复于 2006-11-01 17:01:02 得分 15
访问是指读还是写???
不过应该这样就可以了
DataTable dt=temDs.Tables["TransportationBillDetail"].GetChanges(DataRowState.Deleted).Clone();
Top
5 楼icebamboo123(努力考个结婚证书)回复于 2006-11-01 17:04:21 得分 0
是读操作,说是不能通过已经删除的行访问
Eddie005(♂) №.零零伍 (♂) 的方法,明天试下
谢谢各位Top
6 楼icebamboo123(努力考个结婚证书)回复于 2006-11-01 17:05:32 得分 0
怎么dt刚获取数据,就要回滚呢?为什么呀????Top
7 楼viena(维也纳N02)回复于 2006-11-01 17:07:19 得分 15
嗯,RejectChanges一下看看~Top
8 楼yangye1211(杨杨)回复于 2006-11-01 17:07:58 得分 0
写错了,是.Copy()
Top
9 楼viena(维也纳N02)回复于 2006-11-01 17:08:33 得分 0
加.Copy没必要吧,GetChanges本身就是得到一个副本Top
10 楼Eddie005(♂) №.零零伍 (♂)回复于 2006-11-01 17:10:06 得分 0
viena(维也纳nn)的更正是对的~Top
11 楼icebamboo123(努力考个结婚证书)回复于 2006-11-01 17:10:22 得分 0
不要着急,让我试一下,还有一点时间Top
12 楼yangye1211(杨杨)回复于 2006-11-01 17:12:20 得分 0
反正就是那个意思,总之引用是不work 的Top
13 楼icebamboo123(努力考个结婚证书)回复于 2006-11-01 17:27:49 得分 0
测试通过,谢谢各位!Top
14 楼icebamboo123(努力考个结婚证书)回复于 2006-11-01 17:28:29 得分 0
讲讲什么原理,为什么rejectChanges()以后,就可以得到数据呢Top
15 楼Eddie005(♂) №.零零伍 (♂)回复于 2006-11-01 17:31:54 得分 0
其实也无所谓什么原理,这只是.net类库设计者的一项人为限制:已经标记为“删除”的行就不允许再访问; 而RejectChanges()就是取消所有行状态的更改~Top
16 楼icebamboo123(努力考个结婚证书)回复于 2006-11-01 17:33:35 得分 0
那也就是说,dt里刚开始获得的数据也是带删除标记的吗/Top




