求大鸟帮帮忙,sqldataadapter.update() 批量更新数据失败

时间:2022-12-26 15:42:19
  数据是 sqldataadapter.fill(datatable) 然后 绑定到 datagridview.datasouce=datatable 上。用户在datagridview界面上手工输入(不通过编程方式)保存正常。 如果通过编程方式 foreach( )   row.cell[].values=“值” 方式,sqldataadapter.update 数据没有更新成功.
      在update 前有debug过 datatable,数据都是有同步到 datatable的。(另外id有设置主键,不是这原因)

   然后也有试过直接修改数据源datatable  有的能成功有的不能...很奇怪

  请问大鸟什么问题?如何解决?  有没有其他批量处理数据的方法

7 个解决方案

#1


不成功的有没异常?

#2


多谢答复~  没有任何提示..

#3


我重新写一下问题比较清除:
  使用的方法比较菜鸟:


就是 sqldataadapter.fill(datatable) 
然后 绑定 datagridview.datasouce=datatable 
保存时执SqlCommandBuilder  builder = new SqlCommandBuilder(adapter);
                    adapter.Update(dt.GetChanges());
                    
以下是问题:
用户在datagridview界面上手工输入(不通过编程方式)保存正常。 
如果通过编程方式 foreach( )  { row.cell[].values=“值” }方式, sqldataadapter.update 数据没有更新成功.


在update 前有debug过 datatable,数据都是有同步到 datatable的。(另外id有设置主键,不是这原因)
然后也有试过直接修改数据源datatable  有的能成功有的不能...很奇怪

请问大鸟什么问题?如何解决?  有没有其他批量处理数据的方法

#4


检查下生成的更新语句是不是正确的?

#5


builder.QuotePrefix = "["
builder.QuoteSuffix = "]"
update之前加上这两句

#6


@FainSheeg  没效果

#7


测试了一下

            string sql = "select * from productName";
            adaapter = new SqlDataAdapter(sql, DBHelper.connection);
            adaapter.Fill(dt);
            dataGridView1.DataSource = dt;

            dataGridView1.Rows[0].Cells["dict"].Value = "aa";
            SqlCommandBuilder sb = new SqlCommandBuilder(adaapter);
            adaapter.Update(dt.GetChanges());

         像这样子 会提示 值不能为 null。
        直接跳不过去..谁能帮帮我

#1


不成功的有没异常?

#2


多谢答复~  没有任何提示..

#3


我重新写一下问题比较清除:
  使用的方法比较菜鸟:


就是 sqldataadapter.fill(datatable) 
然后 绑定 datagridview.datasouce=datatable 
保存时执SqlCommandBuilder  builder = new SqlCommandBuilder(adapter);
                    adapter.Update(dt.GetChanges());
                    
以下是问题:
用户在datagridview界面上手工输入(不通过编程方式)保存正常。 
如果通过编程方式 foreach( )  { row.cell[].values=“值” }方式, sqldataadapter.update 数据没有更新成功.


在update 前有debug过 datatable,数据都是有同步到 datatable的。(另外id有设置主键,不是这原因)
然后也有试过直接修改数据源datatable  有的能成功有的不能...很奇怪

请问大鸟什么问题?如何解决?  有没有其他批量处理数据的方法

#4


检查下生成的更新语句是不是正确的?

#5


builder.QuotePrefix = "["
builder.QuoteSuffix = "]"
update之前加上这两句

#6


@FainSheeg  没效果

#7


测试了一下

            string sql = "select * from productName";
            adaapter = new SqlDataAdapter(sql, DBHelper.connection);
            adaapter.Fill(dt);
            dataGridView1.DataSource = dt;

            dataGridView1.Rows[0].Cells["dict"].Value = "aa";
            SqlCommandBuilder sb = new SqlCommandBuilder(adaapter);
            adaapter.Update(dt.GetChanges());

         像这样子 会提示 值不能为 null。
        直接跳不过去..谁能帮帮我