当from2窗体的button2向表插入texbox2数据时同时插入from1窗体texbox1里的值到同1张数据表里,
我想要mydb2的表里同时获取到from1窗体texbox1里的值,这个是from2的button2代码如何改?
       private void button2_Click(object sender, EventArgs e)
        {
            string sql = String.Format("insert into mydb2(字段3)values('{0}')", texbox2.Text);
            dac.ExecuteSql(sql);
            MessageBox.Show("OK");
        }

解决方案 »

  1.   

    把from1作为一个对象传给from2。。
      

  2.   

    你这属于多窗体传值了Form1给表一个刷新方法,如果form1的表用的是DataGridView,那么定义一个Public void bind()方法,该方法读取数据绑定数据表,在Form1的Load方法中调用。(该方法可以增加一个Form1的Actived的引用,每当Form1窗体激活时重新加载数据,但是可能要多消耗一点点点点系统资源呵呵)
    form1打开form2窗体时使用如下方法:
            private void open_form2_Click(object sender, EventArgs e)
            {
                Form2 form2 = new Form2(this);
                form2.ShowDialog();
            }在Form2的构造函数中改为:
            Form1 frm1 = new Form1();
            public config(Form1 arg_frm1)
            {
                frm1 = arg_frm1;
                InitializeComponent();
            }然后在你的方法中加上
     private void button2_Click(object sender, EventArgs e)
      {
      string sql = String.Format("insert into mydb2(字段3)values('{0}')", texbox2.Text);
      dac.ExecuteSql(sql);
      MessageBox.Show("OK");//调用Form1的bind()方法使Form1重新加载数据
      frm1.bind();
      }如果定义了Form1窗体的Actived方法那么就不用加frm1.bind()了,因为当Form2关闭的时候Form1会自动重新加载数据表了
      

  3.   

    错了几个字:
    在Form2的构造函数中改为:
      Form1 frm1 = new Form1();
      public Form2(Form1 arg_frm1)
      {
      frm1 = arg_frm1;
      InitializeComponent();
      }
    这是我在最近的城域网管理项目中使用的,非常好用呵呵