请问我建立了一个DataGrid与数据库的连接,将DataSet集合填充到该DataGrid控件,现在我删除了一条记录,想马上看到效果,怎么办?我试过用DataGrid1.Refresh()命令没有效果,接着又把DataGrid的Bindings Clear掉,再重新Bind,也没用,请问要怎么办?谢谢!

解决方案 »

  1.   

    我是通过本窗体的一个按钮删除的,删除时是用的删除语句delete。绑定也是通过语句来绑定的。
      

  2.   

    绑定语句如下:
    this.dataGrid1.DataBindings.Add(new System.Windows.Forms.Binding("Tag", this.ds1,  "内购表.编号"));
    this.dataGrid1.DataSource=this.ds1.Tables[0];注:ds1是一个DataSet对象,已经通过DataAdapter进行Fill。删除语句如下:
    conn.Open();
    delString="delete from  内购表 where 编号="+this.txtBH.Text.ToString();
    delCmd.CommandText=delString;
    int records=delCmd.ExecuteNonQuery();
    MessageBox.Show(records.ToString()+"条记录删除成功!");我用MessageBox看到可以删除一条记录。但DataGrid控件中不能马上显示出删除的结果(也就是要少一条记录),当重新运行程序时可以看到删除结果。
      

  3.   

    关键的地方没有贴出来,应该是你删除了数据库里的数据后没有重新生成dataset导致dataset里的数据还是旧数据
      

  4.   

    多谢 wangzhenyun_512(explorer)
    多谢 flyzq() ( )
    多谢 愚翁
    谢谢各位!!
    搞定了!
      

  5.   

    来晚了好在没接分,应该是wangzhenyun_512(explorer) 说得原因吧
      

  6.   

    删除之后把DataSet.Clear(),再重新Fill()一下就可以了.
      

  7.   

    pegtop(再回首) 大哥,请问怎么clear()?好像DataSet对象中没有这样的方法名哦,我试了。
    我是重新生成一个DataSet对象,再把所有绑定到该对象的控件重新绑定一遍。
    不过用上面的办法确实很耗资源,各位还有更好的办法吗?
      

  8.   

    我的意思也就是怎么更新了数据库的同时也把DataSet也更新一下,而不是重新生成一个新的赋值。谢谢各位指点!