学习SQLdataAdapter 时候遇到问题,
   string constr = @"Server=WANGDEFU-PC\WANG;user=sa;pwd=1;database=E_et"; //E_et是数据库
                SqlConnection mysqlcon = new SqlConnection(constr); //新建类               mysqlcon.Open(); //打开数据库
                 textBox1.Text = "数据库被打开";
               string sql = "select * from myinfor"; //myinfor 数据表
               SqlDataAdapter myda = new SqlDataAdapter(sql, mysqlcon);
               DataSet myds = new DataSet();
               myda.Fill(myds, "Userinfo1"); //我理解是将查询结果映射到Userinfo1里面了,而且这个名字可以随便起?     string updatesql = "update Userinfo1 set ID=45 where ID=100";  //操作内存里面的Userinfo1数据表把ID=100的行改成ID=45
         myda.UpdateCommand = new SqlCommand(updatesql, mysqlcon);
           
  myda.Update(myds, "Userinfo1");问题是运行程序没有报错,但是数据表也没有更新?
我的目的是
1首先把数据库里面的myinfor数据表映射到内存dataset里面的Userinfo1表中
2针对Userinfo1表进行修改"update Userinfo1 set ID=45 where ID=100"; 
3.修改后同步到实际的数据库表myinfor。
还请高手帮忙解答具体该如何做谢谢

解决方案 »

  1.   

    读取没问题,修改 弄句sql毛用没有。for each row  as datarow in Userinfo1 .rows
       if row("ID")  = 100 THEN ROW("ID")=45NEXT
    myda.Update(myds, "Userinfo1")
     
      

  2.   

    1-你要修改的是你获取的DATATABLE,写句SQL 把他弄成UPDATECOMMAD 毫无意义。2-updatecommand 用处是,当你修改了datatabel,那么datarow的属性变成了 edit?还是UPdate什么的hi后,更新到数据里使用的逻辑。如果没有修改datatable,这句语句不会触发。
      

  3.   


    什么时候会用到updatecommand 这个指令啊?上网看了半天没看懂。
      

  4.   

    什么时候会用到updatecommand 这个指令啊?上网看了半天没看懂。一共有4条语句,addnew,update和delete,select
    ---在datatable中使用Addnew的时候
    如:dim datarow row =dt.newrow
            row("id")=333
              dt.rows.add(row)这时候,你用ds.update(dt),就会使用addnew的commmand。用那条语句是根据datatable的row的状态来选择的。作用是用来操作datatable的,可以自动生成,也可自己编写出奇怪的需求来,比如删除datatable中的行,而deletecommand 可能不用删除语句,而是更新或新增。你可以让sqldataAdapter自动生成 这4条语句。 而你的操作,只要修改你的数据表就行了。记得更新前别用accept,就行。