以datatable(实体类获得)为数据源(通过bindingsource)的gridview,通过rowchanged事件判断对grid中数据的操作(增,删,改)来调用相关的数据库操作函数更新数据库,总是有点问题,现在想问问有没有什么好的办法来完成类似功能(不使用按钮)

解决方案 »

  1.   

    绑定模式的话就是这个方法了可以从MSDN下载一个类似例子代码看看:
    http://msdn2.microsoft.com/zh-cn/library/1x64c23x(VS.80).aspx
      

  2.   

    主要是有几个问题,1、怎么用代码更改行状态为unchanged
    2、新增一行后接着就修改此行数据,此时行状态为add,结果多了一条数据
      

  3.   

    那你就这样做。
    你在增,删,改按钮事件里,最后重新填充datatable,并把重新填充后的datatable赋给gridview的DataSource,并dataGridView1.Refesh();始终使你的gridview处于最新状态。
      

  4.   

    不能用按钮,现在主要是想怎么用代码更改某一行rowstate为unchanged
      

  5.   

    1、怎么用代码更改行状态为unchanged
    2、新增一行后接着就修改此行数据,此时行状态为add,结果多了一条数据
    ===============
    1。DataRow.AcceptChanges()方法调用。
    2.那是肯定的,这没有问题的吧,
    http://blog.csdn.net/zhzuo/archive/2004/08/06/67016.aspx
    http://blog.csdn.net/zhzuo/archive/2004/08/06/67037.aspx
      

  6.   

    1。DataRow.AcceptChanges()会触发rowchanged事件,而我的数据库操作是放在rowchanged事件中的会造成重复的执行,并且会把整个表里的行状态全部变成unchanged;我想用代码直接将某行的rowstate改为unchanged