我用Datagrid.datasource=dataset.table[0]为winform版的datagrid绑定,在编译生成的datagrid中随意插入、修改数据后,点击“修改”、“插入”按钮后,引发下面的事件,可是经查数据库中没有任何改变,
private void update_Click(object sender, System.EventArgs e)
{sqlDataAdapter1.Update(dataSet11);
}
是不是我的update_click代码有问题呢,或是不能通过直接在生成的winform的datagrid的数据修改来达到修改数据库的要求呢

解决方案 »

  1.   

    手工指定sqlDataAdapter1的UpdateCommand
      

  2.   

    SqlDataAdapter的UpdateCommand没有指定
      

  3.   

    如果没有updateCommand就使用commandBuilder自动生成语句更新
      

  4.   

    sqlDataAdapter1.UpdateCommand=new SqlCommand("update 客户价格 set 客户类型=@khlx,产品编码=@cpbm,折扣率=@zkl,备注=@bz where 客户帐号=@khzh",sqlConnection1);
                SqlParameter khbhPara=sqlDataAdapter1.UpdateCommand.Parameters.Add("@khzh",SqlDbType.Int);
       khbhPara.SourceColumn="客户帐号";
                khbhPara.SourceVersion=DataRowVersion.Original;
      SqlParameter khlxPara=sqlDataAdapter1.UpdateCommand.Parameters.Add("@khlx",SqlDbType.NChar,30,"客户类型");
                khlxPara.SourceColumn="客户类型";
                sqlDataAdapter1.UpdateCommand.Parameters.Add("@cpbm",SqlDbType.Int,30,"产品编码");
       khlxPara.SourceColumn="产品编号";
                SqlParameter zklPara=sqlDataAdapter1.UpdateCommand.Parameters.Add("@zkl",SqlDbType.NChar);
       zklPara.SourceColumn="折扣率";
       SqlParameter bhPara=sqlDataAdapter1.UpdateCommand.Parameters.Add("@bz",SqlDbType.NChar);
                bhPara.SourceColumn="备注";
                 
                sqlConnection1.Open();
       sqlDataAdapter1.Update(dataSet11,"客户价格");
       sqlConnection1.Close();
    为什么也不能更改呢(DataAdapter1是公用的,DataAdapter1.selectcommand为select * from 客户价格,DataSet11是由DataAdapter1生成的公用数据集)
      

  5.   

    要么就是手工用update 语句,要么先配置commandBuilder,然后你才可以用这个update(dataSeltt,"客户价格")