如何遍历一个datatable,然后手动将修改过的记录中相关字段,更新到后数据库表?
---------------------------------------------------------
我知道可以使用 dataadapter的update功能,但是我想手动更新自已相应的字段,
如果用 dataadapter.update(),我发现所有字段都会被更新,这样太不好了。一来增加网络流量,再则没本没有必要。
比如一个表有10多个字段,其实我只需要更新新中2个字段,sqlcommandbuilder 生成的更新语句会10多个字段全部更新。因为,我要手动写代码更新,我的思路是,遍历整个 datatable,把曾经修改过的记录中,这两个字段用 update 语句更新到后台数据库表。
不知我的思路对不对,是常规的处理思路吗?另外,如果这种思路可行,
如何用代码遍历整个 datatable ,并且找到所有被修改记录呢?应该用 for each 循环吗?我就是不知如何写代码

解决方案 »

  1.   

    在datatable中为每行数据增加一个字段state,修改过的state=1,没修改的state=0,然后再读取state=1的数据保存到数据库中就可以了
      

  2.   

    不用的,这个功能 ado.net 本身就有呀。DataTable xtb = mytable.GetChanges();
    这样就会得到所有已经更改过的记录呀。
      

  3.   

    web 的话,,  就直接都更新了吧.   如果是winfrom  遍历 要比 全更新好
      

  4.   

    可以把需要修改的查询出来,一次性的修改,用for循环就行啦。