SqlDataAdapter  控件是一个中间的桥作用 
 执行SQL 用 SqlCommand
 但 SqlDataAdapte和SqlCommand有一定的关系 如
ds 是 DataSet类型
string str="insert into MY(ID,name,sex)values(@ID,@name,@sex)";
              SqlCommand cmd=new SqlCommand(str,sqlconnection);
              cmd.Parameters.AddWithValue("@ID",this.textBox1.Text);
              cmd.Parameters.AddWithValue("@name",this.textBox2.Text);
              cmd.Parameters.AddWithValue("@sex",this.textBox3.Text);
                SqlDataAdapter sda = new SqlDataAdar("",sqlconnection);
                sda.InsertCommand = cmd;
                sda.Update(this.ds,"MY");
              //cmd.ExecuteNonQuery();现在  sda  只是更新的是ds结果集里的数据 并没有更新到数据库中 有没有一种方法 用sda在更新ds的同时  也更新数据库呢?谢谢!!

解决方案 »

  1.   

    可以自己写方法实现的,我也曾经遇见这样的问题
    想要sda自己实现很难。
      

  2.   

    另外SqlDataAdapter构造函数传SQL自动填充SelectCommand后SelectCommand其实可以当成普通的SqlCommand用做任何SQL语句
    而且AddWithValue方法"@"可以省略string str="insert into MY(ID,name,sex)values(@ID,@name,@sex)"; 
    SqlDataAdapter sda = new SqlDataAdar(str,sqlconnection);
    sda.SelectCommand.Parameters.AddWithValue("ID",this.textBox1.Text); 
    sda.SelectCommand.Parameters.AddWithValue("name",this.textBox2.Text); 
    sda.SelectCommand.Parameters.AddWithValue("sex",this.textBox3.Text);
    sda.SelectCommand.ExecuteNonQuery();
     
      

  3.   

    sda.UpdateCommand.EndExecuteNonQuery();
      

  4.   


    你设置sda的selectcommand属性为对应的sqlcommand      然后用commandbuilder 自动生成对应的insertcommand语句就可以了。
      

  5.   

    看了一下午的MSDN  知道有这么几个方法 了 
    好的 初学 问的问题 太白吃了