seehttp://community.csdn.net/Expert/topic/3481/3481728.xml?temp=.2674829

解决方案 »

  1.   

    你把this.dataSet51的数据清除一下,填充this.dataSet51之前调用Clean方法
    试试看
      

  2.   

    研究不出来,请详细讲讲!!窗体A中提供一个
    private void refreshData()
    {
       重新获取数据;
    }打开B的时候,如下
    B b = new B();
    B.ShowDialog();
    this.refreshData();
      

  3.   

    private void refreshData()  //这个是formA的函数
    {
    this.oleDbDataAdapter2.Fill(this.dataSet51);//当前窗口是本窗口时刷新DataGrid2
    this.dataGrid2.DataMember = "tabno.tabnobustemp";
    this.dataGrid2.DataSource = this.dataSet51;
    }//以下代码放在你打开formB的formA的事件中,不过这个方法是要关闭formB
    //的时候才会刷新
    formA中的数据
    B b = new B();
    B.ShowDialog();
    this.refreshData();  
    建议你使用delegate的方式. 
      

  4.   

    delegate方式:formA中的方法://假使你是点击按钮打开formB
    private void buttonShowFormB_click(object sender, EventAgrs e)
    {
    FormB f = new FormB()
    f.OnSuccess +=new FormB.SuccessDelegate(this.OnSuccess);
    f.ShowDialog(this);
    }private void OnSuccess()
    {
        this.oleDbDataAdapter2.Fill(this.dataSet51);//当前窗口是本窗口时刷新DataGrid2
        this.dataGrid2.DataMember = "tabno.tabnobustemp";
        this.dataGrid2.DataSource = this.dataSet51;
    }formB中的方法:
    //以下是声名
    public delegate void SuccessDelegate();//可以带参数
    public event SuccessDelegate OnSuccess;//以下是具体函数
    //在formB中完成输入后,点击buttonFinish(提交)按钮更新formA数据
    private void buttonFinish_click(object sender, EventAgrs e)
    {
        if (OnSuccess != null)
        {
            OnSuccess();
        }
    }//愚见,希望你多试试.