none
如何用程序修改DataGridView的数值并保存到数据库中 RRS feed

  • 问题

  • 我用以下代码实现DataGridView显示数据库的内容

    OracleDataAdapter oda = new OracleDataAdapter(sqlstr, oracleconn);
                 OracleCommandBuilder ocb = new OracleCommandBuilder(oda);            oda.UpdateCommand = ocb.GetUpdateCommand(); oda.InsertCommand = ocb.GetInsertCommand();
                 System.Data.DataTable dt=new System.Data.DataTable();
                  
                 oda.Fill(dt);
                  
                 BindingSource bs = new BindingSource();
                 bs.DataSource = dt;
                 dgv.DataSource = bs;//datagridView来显示
      
    以上代码只保存了datagridView(dgv)和dataadapter(oda)两个变量。
    在用程序修改了datagridView之后(dgv.SelectedRows[0].Cells["OBJECTID"].Value = ),用oda.Update((dgv.DataSource as BindingSource).DataSource as DataTable);
    结果不能将修改写入数据库
    但是如果在界面上输入,倒是可以修改成功

    我调试发现,有时执行OracleCommandBuilder ocb = new OracleCommandBuilder(oda); 后,并不能写入oda的updatecommand,于是我只好手动设置oda.UpdateCommand=ocb.UpdateCommand,尽管如此,如果程序修改DataGridView的数值后,oda.Update仍然不能写入数据库

    2012年5月8日 0:29

答案

全部回复