有一个表单,我想在添加记录后,表单中的datagrid不能自动刷新

解决方案 »

  1.   

    我是这样写的gridb()是绑定数据的! 
    private void gridb()
    {
    sqlstr="select id_f,zw_f,dw_f from wjzd where stop_f=0";
    Mycon.myopen();
    dr1=new OleDbDataAdapter(sqlstr,Mycon.dbcon);
    ds1=new DataSet();
    dr1.Fill(ds1,"wjzd");
    this.DGrid1.DataSource=ds1.Tables["wjzd"];
    } private void bt1_Click(object sender, System.EventArgs e)
    {
    string gettb1=this.tb1.Text;
    string gettb2=this.tb2.Text;
    if (gettb1!="" && gettb2!="")
    {
    if (this.rb1.Checked==true)
    {
    string sqlstr="insert into wjzd(zw_f,dw_f) values('"+gettb1+"','"+gettb2+"')";
    OleDbCommand Mycom=new OleDbCommand(sqlstr,Mycon.dbcon);
    Mycom.ExecuteNonQuery();
    Mycom.Dispose();
    this.tb1.Text="";
    this.tb2.Text="";
    this.DGrid1.DataSource=null;
    ds1.Clear();
    gridb();
    }
    }
      

  2.   

    DataSet ds = new DataSet();
    adapter.Fill(ds);
    this.dataGrid1.SetDataBinding(ds,tableName);
      

  3.   

    这个问题刚解决了,看了本站的很多贴子才解决了!但是有更多的问题了,如何知道dataGRID中选中的行是一行还是多行呢!本问题我改了一下click事件就行了
    private void bt1_Click(object sender, System.EventArgs e)
    {
    string gettb1=this.tb1.Text;
    string gettb2=this.tb2.Text;
    if (gettb1!="" && gettb2!="")
    {
    if (this.rb1.Checked==true)
    {
    DataTable dt1=ds1.Tables["wjzd"];
    DataRow drow1=dt1.NewRow();
    drow1["zw_f"]=gettb1;
    drow1["dw_f"]=gettb2;
    dt1.Rows.Add(drow1);
    OleDbCommandBuilder cb1=new OleDbCommandBuilder(dr1);
    dr1.Update(ds1,"wjzd");
    this.tb1.Text="";
    this.tb2.Text="";
    }
    }
    }
      

  4.   

    用绑定!
    CurrencyManager
    到MSDN 找下 有例子
    他可以解决你的问题!
      

  5.   

    谢xjaifly(tiantian) 
    但是CurrencyManager只能确定数据在datatable中的位置,而不能确定选中的是多项和选中了多少项
      

  6.   

    DataGrid好像不能一次选定多项吧
    学习ing