子窗体如何操作父窗体的dataset???包括添加修改操作。
请高手帮帮忙

解决方案 »

  1.   

    http://bbs.neupioneer.com/dispbbs.asp?boardid=166&id=281158
    参考一下
      

  2.   

    把父窗体的DATASET传递到子窗体吧,要直接操作到里面的内容的话传递个引用,再在子窗体里面NEW一个DATASET对象等于这个引用就可以了
      

  3.   

    在子窗体中做一构造函数,实例化的时候把你窗体的dataset传过来就OK了.
      

  4.   

    这是父子窗体的传值问题,仅供参考:(刷新是个操作,你也可以改成自己的操作)CON-如何在子窗体(被调用者)中实现对其父窗体(调用者)的刷新呢?
    网络上有几种方法,先总结如下:
    调用窗体(父):Form1,被调用窗体(子):Form2
    方法1: 所有权法
    //Form1:
    //需要有一个公共的刷新方法
    public void Refresh_Method()
    {
    //...
    }
    //在调用Form2时,要把Form2的所有者设为Form1
    Form2 f2 = new Form2() ;
    f2.Owner = this;
    f2.ShowDialog() ;
    //Form2:
    //在需要对其调用者(父)刷新时
    Form1 f1 ;
    f1 = (Form1)this.Owner;
    f1.Refresh_Method() ;
    方法2:自身传递法
    //Form1:
    //需要有一个公共的刷新方法
    public void Refresh_Method()
    {
    //...
    }
    Form2 f2 = new Form2() ;
    f2.ShowDialog(this) ;
    //Form2:
    private Form1 p_f1;
    public Form2(Form1 f1)
    {
    InitializeComponent();
    p_f1 = f1;
    }
    //刷新时
    p_f1.Refresh_Method() ;
    方法3:属性法
    //Form1:
    //需要有一个公共的刷新方法
    public void Refresh_Method()
    {
    //...
    }
    //调用时
    Form2 f2 = new Form2() ;
    f2.P_F1 = this;
    f2.Show() ;//Form2:
    private Form1 p_f1;
    public Form1 P_F1
    {
    get{return p_f1;}
    set{p_f1 = value;}
    }
    //刷新时
    p_f1.Refresh_Method() ;
    方法4:委托法
    //声明一个委托
    public delegate void DisplayUpdate();
    //Form1:
    //需要有一个公共的刷新方法
    public void Refresh_Method()
    {
    //...
    }
    //调用时
    Form2 f2 = new Form2() ;
    f2.ShowUpdate += new DisplayUpdate(Refresh_Method) ;
    f2.Show() ;
    //Form2:
    //声明事件
    public event DisplayUpdate ShowUpdate;
    //刷新时,放在需要执行刷新的事件里
    ShowUpdate();
      

  5.   

    lz:
        dataset是引用对象,你只需在创建子窗体的地方,把父窗体的dataset传递给子窗体就行了,你用子窗体的Tag也行,在子窗体定义一个Public类型的dataset对象也行(这时并不需要那new),那么你在子窗体操作这个dataset对象,就是父窗体的dataset对象本身。
      

  6.   

    把父窗体的DataSet定义成public static类型的
    任何一个子窗体就都可以调用拉。