比如以打开一个查询窗体,里面DataGrid显示数据,以这个窗体做为基准页,然后打开另一个添加数据窗体
添加数据成功完后,查询窗体DataGrid能不能做成刷新显示刚添加成功的数据?

解决方案 »

  1.   

    Form1 f = new Form1();
                if (f.ShowDialog() == DialogResult.OK)
                {
                    gridView1.DataSource = ds.Tables[0].DefaultView;
                }
      

  2.   

    直接将数据插入到 数据库还是 DataSet中?
    如果直接插入数据库中上面的方法肯定不行,要重新更新数据集
    如果是插在DataSet 中上述方法应该是可行的
      

  3.   

    MessageBox.Show("添加新记录成功!","提示",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
    frmInit();
    frmSearchOrder fso = new frmSearchOrder();
    DataTable dt = od.SelectOrder();
    DataView dv = dt.DefaultView;
    //fso.DataBindOrder();
    fso.dgrdOrder.DataSource=dv;
    fso.dgrdOrder.Refresh();
    我把frmSearchOrder上的DataGrid设置为public添加成功,实现刷新没反应,继续自己顶
      

  4.   

    new出来的窗口不行吧,主窗口和子窗口使用一个数据集对象,子窗口更新完了,主窗口会自动更新的
      

  5.   


    你已经成功一半了但是忽略了一点。frmSearchOrder fso = new frmSearchOrder(); 之后,fso 已经不是你之前打开的那个基准窗口了,而是New了一个新事例。所以:需要更改用于添加记录的那个窗口的构造函数。假设你添加记录的窗口为frmSearchOrderpublic class frmSearchOrder : Form 
    {
      Form fso;//fso也就是你的基准窗口
        Public frmSearchOrder(Form b)
       {
        fso=b;//重点在这里
        
        DataTable dt = od.SelectOrder();
        DataView dv = dt.DefaultView;    fso.dgrdOrder.DataSource=dv;
        fso.dgrdOrder.Refresh();    }
    }之后:在你的基准窗口调用这个添加记录窗口的时候就应该写成:
    frmSearchOrder fso=New frmSearchOrder(this);
    fso.Show();
      

  6.   

    frmSearchOrder为查询窗口 
    frmAddOrder为添加窗口
    两窗体都为mdi子窗体当我在frmAddOrder窗体上按"添加"按钮,frmSearchOrder上的DataGrid数据进行刷新是这样的
      

  7.   

    public class frmAddOrder: Form 

       frmSearchOrder fso;//fso也就是你的基准窗口 
        Public frmAddOrder(Form b) 
      { 
        fso=b;//重点在这里   注:D:\My Documents\Visual Studio Projects\AurineOrder\frmAddOrder.cs(79): 无法将类型“System.Windows.Forms.Form”隐式转换为“AurineOrder.frmSearchOrder”
        
        DataTable dt = od.SelectOrder(); 
        DataView dv = dt.DefaultView;     fso.dgrdOrder.DataSource=dv; 
        fso.dgrdOrder.Refresh();   } 

      

  8.   

    可以 
    窗体传参:
    1 。 通过重写构造函数
    2 。 通过声明为public 
    3 。 定义static 变量存储 
      

  9.   

    timer 或者 窗体激活事件 看看行不
      

  10.   

    不是在更新Datasourse以后系统会自动刷新的么...
      

  11.   

    做这样的刷新的时候,我的做法一般采用委托+事件来实现。
    //加在frmAddOrder中
            public delegate void test();
            public event test onTest;        private void Test()
            {
                if (onTest != null)
                {                
                    onTest(intTest); 
                }
            }//加在frmSearchOrder中
    frmAddOrder frmadd=new frmAddOrder();
    frmAddOrder.onTest += new frmAddOrder.test(this.DataShow)
    private void  DataShow()
    {
    ...................//你的填充代码.
    } 希望对你有帮助。
      

  12.   

    补充一下,你还要在frmAddOrde中,在完成添加的时候 调用一下
    Test() ;
    希望对你有帮助。