1.我在第一个窗体1已经连接数据库并在该窗体dataGridView1中显示;
    mydt = new DataTable();
    dataGridView1.DataSource = mydt.DefaultView;
2.新建一个窗体2,也添加了一个dataGridView1,要显示窗体1中的数据;我不想在窗体2重新连接数据库,不知道如何将窗体1中的传过来。{我设置mydt为公共变量,但还需要重新连接数据库,才可以显示数据。}

解决方案 »

  1.   

    Form1中设置为全局变量
    public DataTable  mydt = new DataTable();
    在Form2中Form1 form1=new Form1();
    form1.ShowDialog();
    dataGridView1.DataSource=form1.mydt;
      

  2.   

    public class Common
        {
            private static string connecString = "Data Source=.;Initial Catalog=Northwind;Integrated Security=True";        public static DataSet GetDataSet(string sql)
            {
                DataSet ds = new DataSet();
                using (SqlConnection conn = new SqlConnection(connecString))
                {
                    SqlDataAdapter sda = new SqlDataAdapter(sql, conn);
                    sda.Fill(ds);
                }
                return ds;
            }
        }在你需要的地方调用:
    string sql="select *from orders";
                DataSet ds = Common.GetDataSet(sql);
                dataGridView1.DataSource = ds.Tables[0];
      

  3.   

    1.设置静态全局变量mydt 2.在Form2中加属性
      

  4.   

    在Form2中建一个带有DataTable的构造函数:public Form2(DataTable dt)
    {
       this.DataGridView1.DataSource=dt;
    }//在窗体Form1中调用Form2:
    Form2 frm=new Form2(this.DataGridView1.DataSource as DataTable);
    frm.Show();
      

  5.   

    public static DataTable mydt=null;
    在第一个窗体中加并给它赋值
    dataGridView1.DataSource = form1.mydt;
      

  6.   

    那要是再form2中显示汇总数据呢