SqlConnection conn=new SqlConnection("server=server;Database=db;uid=sa;pwd=;");
SqlDataAdapter da=new SqlDataAdapter("Select * From Authors",conn);
SqlCommandBuilder cb=new SqlCommandBuilder(da);   //必须要这句,才能用da.Update
DataSet ds=new DataSet();
da.Fill(ds);
ds.Tables[0].Rows[0][1]="Change Data";
da.Update(ds);

解决方案 »

  1.   

    如果ds是在该子程序外部发生改变的,怎样更新?
    我测试过,这时候cb无法创建命令对象。
    public void UpdateDs(DataSet ds)
    {
       SqlConnection conn=new SqlConnecti("server=server;Database=db;uid=sa;pwd=;");
       SqlDataAdapter da=new SqlDataAdapter("Select * From Authors",conn);
       SqlCommandBuilder cb=new SqlCommandBuilder(da);  //必须要这句,才能用da.Update(ds);
    }这段程序为什么会无效?
    顺便讲一句,如果数据库没有定义主键的话,icyer() 的程序段是无效的。
      

  2.   

    是的如果没有主键Update时CommandBuilder会报错.这类问题如何解决?