我手动给DATAGRIDVIEW绑定了数据源,现在要做一个更新的动作,通过button按钮实现,在网上看了好多关于更新的方法,很多都是通过:OleDbCommandBuilder odb = new OleDbCommandBuilder(oda);
                    oda.UpdateCommand = odb.GetUpdateCommand();
                    oda.Fill(DS.Tables["sphysic"]);//不加这句提示错误,加了不提示错误,但还是无法更新。
                    oda.Update(DS.Tables["sphysic"]);
                    DS.AcceptChanges();  
以上几行代码实现的,可我的为什么还是无法实现更新,数据库中还是原始值。这是为什么啊,恳请大家指教啊,这个问题头疼死了我了。救救我啊。。

解决方案 »

  1.   

    没用过DATAGRIDVIEW
    但是看你这代码好像只是更新DATAGRIDVIEW控件的用的,而不是更新数据库
    更新数据库是不是该另外自己写
      

  2.   

    DATAGRIDVIEW如果支持双向数据的   你改界面数据,数据库也会变
    如果不支持的话,更新数据库是要自己写代码的
      

  3.   

    你检查一下oda.UpdateCommand 里面是不是update语句sql另外OleDbCommandBuilder是根据行状态进行更新的,你下面的语句提取一边新的表数据
    行状态都是未更改的,怎么能更新呢????
     oda.Fill(DS.Tables["sphysic"]);//不加这句提示错误,加了不提示错误,但还是无法更新。下面这个调用,参数应该填写你当初绑定表格数据源的那个DataTable才对。而不是新提取的。
      oda.Update(DS.Tables["sphysic"]);
      

  4.   

    不太明白你说的这个到底是怎么回事。
    “你检查一下oda.UpdateCommand 里面是不是update语句sql”---这个怎么检查?
    还有那个调用参数,datagridview原来就是绑定的“sphysic”这张表。
      

  5.   

    我这个更新是按条件查询出来的数据显示在DATAGRIDVIEW中然后更新再存入数据库的,不知道是不是跟这个有关系呢
      

  6.   

    按F5调试检查update sql是否正确。
    另外检查要保存的DataTable,是不是有修改的内容,还是原始的那份