不会是在每个窗体甚至每个事件中定义对数据库的连接吧?
我的方法是定义一个公共类,里面有一些公共的静态方法,在其他窗体调用这些方法执行对数据库的操作,我使用这样的方法,
登陆,取得某个字段的值,在DataGridView中显示表中的数据都没有问题。
但现在遇到一个问题,我在DataGridView中显示了一张表的内容,然后选择了一行,删除它,我的方法是取得所选行的某一字段,比如姓名,然后调用方法执行我传给他的SQL语句从数据库中删除这条记录,由于我的DataGridView绑定的是公共类中的Datatable,所以数据库中的记录删除了,DataGridView中却没有刷新。
我现在只能再调用一次方法重新绑定一次,但感觉这样太过累赘,各位有没有什么比较好的方法,或者你们是怎么对数据库操作的?

解决方案 »

  1.   

    创建一个DataAdapter 使用DataAdapter填充DataSet
    DataSet绑定到DataGridView 可以指定绑定哪个表
    创建一个CommandBuilder连到DataAdapter
    使用DataAdapter删除/修改即可
      

  2.   

    如果要CommandBuilder自动创建update delete语句 
    要求你的这个表有主键 否则你得自己写
      

  3.   

    三层结构啊.
    dal 数据访问层 与数据库打交道的公用类
    mod 实体层
    bll 业务层
    操作数据库
    都放在dal层里 data acess layer 
    MS有一个样式可以参考.叫sqlhelper.cs的类
      

  4.   

    删除之后是要生新绑定的.当然如果你把取到的dataset的记录也同时删掉的话,就只要绑一下就行了.不用重新获取dataset
      

  5.   

    就是删DataSet中的数据 这个时候DataGridView跟着删除
    然后使用da执行更新数据库
      

  6.   

    DataGridView应该是跟着删除的呀,如果删除DataSet中的数据
      

  7.   

    我是写代码的方式,在公用模块里定义一个conn
    所有的连接都是通过这个conn来实现的
    但是只能用写代码的方式实现