如何批量修改DataSet里面某一列的值(仅仅只是修改DataSet,不保存进数据库)?
假如DataSet 中有如下数据1   'aa'   '2010-02-03'
1   'bb'   '2010-02-05'
1   'cc'   '2010-02-04'
1   'cc'   '2009-12-13'
如何一下子批量改成2   'aa'   '2010-02-03'
2   'bb'   '2010-02-05'
2   'cc'   '2010-02-04'
2   'cc'   '2009-12-13'
不要告诉我遍历然后一行一行的改

解决方案 »

  1.   

    for(int i=0;i<ds.Tables[0].Rows.Count;i++)
    {
    ds.Tables[0].Rows[i]["ID"]=2;
    }
    循环修改
      

  2.   

    for(int i=0;i<ds.Tables[0].Rows.Count;i++)
    {
    ds.Tables[0].Rows[i]["ID"]=2;
    }
      

  3.   

    什么叫批量。
    什么叫循环。
    楼主先搞清楚这两个问题。
    然后再搞清楚什么叫只修改DataSet,最后搞清楚DataSet跟数据库到底有什么关系。算了你要搞的东西太多了,还是去看书吧。
      

  4.   


     ds.Tables[0].Columns[1].Replace("1", "2");
    PS:楼主不要告诉我你找不到这个方法
      

  5.   

    ds.Tables[0].Columns[1].Replace("1", "2");这个方法就算修改也只能改 某行的一个值 ,要想全改楼主你还得用循环,没有循环是不可能的。
      

  6.   

    说到底就算是微软提供了相应的方法,它的底层也是一个遍历的修改,一样的,微软也没办法用几个API直接就把你要的功能实现
      

  7.   

    把这段数据在从新放到数据库,在数据库中修改后再放回到dataset中,  应该可以
      

  8.   

    从数据库中读取出数据之后,如果有个10W 条数据,一行一行的修改可能效率会很低; 我想能不能有那种比较快的方法,将DataSet中的某一列一次性修改成某个值,然后在用SqlBulkCopy一次导入到表中   
      

  9.   

    我有一个想法,不知道成熟不成熟。在select 语句的时候 用 select case when 1 then 2