对数据进行删除的误区
今天在做项目的时候,刚开始还蛮顺利的,但是接下来发生的一个问题让我抓破了脑袋啊
在对物料系统的开发中有个模块需要对不要的物料进行删除操作,但是就是这个对一般人来说很简单的"删除操作"却害的我白忙活了一早上
我的删除是这样做的:
1:先需要的物料全部捞取到DATASET中
2:对DATASET进行ITEMCODE列的筛选得到要删除的那行
3:对DATASET进行(Ds.Table[0].Rows.Remove(dr//找到的行))
4:最后再调用DATAADAPTER.UPDATE来进行更新
问题就出现在这边,不管我怎么删除都没办法更新到数据库中,我对程序是检查了又检查,更改了又更改还是不行
一气之下选择了BAIDU,咳,终于找到问题了
Ds.Table[0].Rows.Remove(dr//找到的行))//我真想掐死你啊!!!!!
总结:
在对DATASET进行REMOVE 的话,只是在DATASET集合里面把这行给移出了//仅仅只是移除哦
而DATAADAPTER.UPDATE的工作是找到需要更新的DATASET或者DATATABLE中标记为"Deleted","Changed","Added"的行,并把这些行更新到数据库中//并不是把所有行都更新到数据库中
所以如果我们只是对要删除的行进行了Remove的话,根本就没有对该行进行标记,所以当然没办法更新到数据库了
所以必须调用DataRow的Delete()方法//爱死你了!!!!!
因为该方法不但会把行从集合中移除,还会在该行的后面标记为"Deleted"
咳,我真是白痴啊,连这样的问题都出现,不活了我!!!!
在对物料系统的开发中有个模块需要对不要的物料进行删除操作,但是就是这个对一般人来说很简单的"删除操作"却害的我白忙活了一早上
我的删除是这样做的:
1:先需要的物料全部捞取到DATASET中
2:对DATASET进行ITEMCODE列的筛选得到要删除的那行
3:对DATASET进行(Ds.Table[0].Rows.Remove(dr//找到的行))
4:最后再调用DATAADAPTER.UPDATE来进行更新
问题就出现在这边,不管我怎么删除都没办法更新到数据库中,我对程序是检查了又检查,更改了又更改还是不行
一气之下选择了BAIDU,咳,终于找到问题了
Ds.Table[0].Rows.Remove(dr//找到的行))//我真想掐死你啊!!!!!
总结:
在对DATASET进行REMOVE 的话,只是在DATASET集合里面把这行给移出了//仅仅只是移除哦
而DATAADAPTER.UPDATE的工作是找到需要更新的DATASET或者DATATABLE中标记为"Deleted","Changed","Added"的行,并把这些行更新到数据库中//并不是把所有行都更新到数据库中
所以如果我们只是对要删除的行进行了Remove的话,根本就没有对该行进行标记,所以当然没办法更新到数据库了
所以必须调用DataRow的Delete()方法//爱死你了!!!!!
因为该方法不但会把行从集合中移除,还会在该行的后面标记为"Deleted"
咳,我真是白痴啊,连这样的问题都出现,不活了我!!!!