net中,批量更新数据,大家一般是怎么做的,如同时修改100条出库信息,包括商品ID、数量、价格等等,当然还有一个主键ID

解决方案 »

  1.   

    update set ... from table where ID in (select Top 100 ID from table)
      

  2.   

    我的意思是用循环一条一条UPDATE(应该不会吧)
    还是拼装SQL语句(UPDATE.....UPDATE...)应该也不会把
    还是存储过程里用charindex、SubString进行循环裁,再UPDATE,似乎也不好
    还是其他的
      

  3.   

    string Sql="select * from Tb";
    DataSet ds=new DataSet();
    SqlDataAdapter sda=new SqlDataAdapter(Sql,myConn);
    SqlCommandBuilder cb=new SqlCommandBuilder(sda);
    SqlCommand upCmd=new SqlCommand("update ...",myConn);
    upCmd.Parameters.Add("@a",SqlDbType.NVarChar,100,"a");
    sda.UpdateCommand=upCmd;
    sda.Fill(ds,"a");
    myConn.Close();
    ......//修改ds数据
    sda.Update(ds,"a");
      

  4.   


    我用过类似的方法,单只能添加,不能修改,即使设置了UpdateCommand,还是添加,不是修改,另外,"select * from Tb",sda.Fill(ds,"a"),如果我的TB里有100W条数据,这里是不是就会把100W条数据都填充到DataSet里
      

  5.   

    SqlCommandBuilder cb=new SqlCommandBuilder(sda); 如梦大虾的这句话是关键
      

  6.   

    我也在网上找了些例子,根据他们的做法,但都是添加不能修改,http://topic.csdn.net/u/20100809/16/f5ea32f6-6bf8-49ad-ad50-e5ba5ef2d629.html?71087
    也看到过6楼的例子,在想如果在
    string Sql="select * from Tb";
    上加上条件,sda.Fill(ds,"a");
    myConn.Close();在这里再循环ds.Tables[0],与提供的修改过的数据表进行对比更新,感觉太麻烦,至少需要一个嵌套循环,
    我在想是否能够提供一个DataTable,就可以直接进行修改
    sda.Update(ds,"a");
      

  7.   

    构造update语句,一次执行,分号间隔语句
    删除再添加(如果可以)- -
      

  8.   

    update table set aaa='' where id in(id1,id2,di3,id4.......)
    批量更新
      

  9.   

    用while循环!
    里面循环修改一百次数据!
      

  10.   

    我假设你的显示控件上面有checkBox,每当你选择一个checkBox时,把ID存入一个string[] 中,用“,”分隔,当选择完毕更新时,用string.split(“,”)方法把string[]中的ID存到一个arraryList中然后判断arraryList[0]是否有值,有的话更新,同时移除arraryList[0].如此循环就可以了。
      

  11.   

    用循环的也可以
    for(int i=0;i<count;i++)
    {
    写更新的执行语句
    }
    这也是一种方法
      

  12.   

    拼接成sql ,然后在事务保护下执行sql。
      

  13.   

    业务逻辑sql写好了,你可以写成事务或与存储过程和起来。
      

  14.   

    update ....  where id in(...)
      

  15.   

    这个只是生成简单的sql拼接,会遇到sql注入的问题
      

  16.   

    只是做过少量的批量更新
    大数据量的没有做过
    不过用for或while循环或者拼接SQL语句和事务控制应该只能满足一些小批量的更新