我的代码如下:
  private void button1_Click(object sender, EventArgs e)
        {
            string sqlstr = "insert into try(id,name,tele) values(@nid,@nam,@tele)";
            int n;
            SqlDataAdapter datadapter = new SqlDataAdapter();
            SqlCommand command = new SqlCommand(sqlstr, conn);
            datadapter.InsertCommand = command;
            datadapter.InsertCommand.Parameters.Add("@nid",SqlDbType.Char);
            datadapter.InsertCommand.Parameters.Add("@nam",SqlDbType.Char);
            datadapter.InsertCommand.Parameters.Add("@tele",SqlDbType.Char);
            datadapter.InsertCommand.Parameters["@nid"].SourceVersion = DataRowVersion.Current;
            datadapter.InsertCommand.Parameters["@nid"].SourceColumn = "id";
            datadapter.InsertCommand.Parameters["@nam"].SourceColumn = "name";
            datadapter.InsertCommand.Parameters["@nam"].SourceVersion = DataRowVersion.Current;
            datadapter.InsertCommand.Parameters["@tele"].SourceVersion = DataRowVersion.Current;
            datadapter.InsertCommand.Parameters["@tele"].SourceColumn = "tele";
            datadapter.InsertCommand.Parameters["@nid"].Value = "10";
            datadapter.InsertCommand.Parameters["@nam"].Value = "16";
            datadapter.InsertCommand.Parameters["@tele"].Value = "1234565";
            n = datadapter.Update(dataset1, "try");
        }
     这个程序没有报错可是一直没有办法更新数据源,这是为什么!还有我希望不要使用SqlCommandBuilder!请各位高手帮忙一下!谢谢了!

解决方案 »

  1.   

    这里直接用 command  就可以了...完全没有必要使用 SqlDataAdapter
      

  2.   

    最后 来个
    command.ExecuteNonQuery();
      

  3.   

    我知道用ExecuteNonQuery()可以,但是我用这个的目的是为了学习怎么用Update所以说还是没有得到正确答案!
      

  4.   

    你改的就是DataSet里的东西,DataSet改了,不见得数据库就改了啊所以要么用SqlCommandBuilder,要么自己再拼语句
      

  5.   

    public void SaveSetting(string SerialPortValue)
            {
                conn = DB.createCon();
                da = new OleDbDataAdapter("select * from SerialPortSelectionTable", conn);
                da.Fill(ds, "SerialPortSelectionTable");            OleDbCommand cmd;
                OleDbParameter parNew;
                string updateStr;            updateStr = "UPDATE SerialPortSelectionTable SET [SerialPort]=@SerialPort";
                cmd = new OleDbCommand(updateStr, conn);
                parNew = cmd.Parameters.Add("@SerialPort", OleDbType.Char);
                parNew.SourceColumn = "SerialPort";            dv = new DataView(ds.Tables["SerialPortSelectionTable"], "", "", DataViewRowState.CurrentRows);
                DataRowView drv;
                drv = dv[0];
                drv["SerialPort"] = SerialPortValue;            da.UpdateCommand = cmd;
                da.Update(ds, "SerialPortSelectionTable");
            }