以第二种形式获取数据数据网格视图

本文关键字:数据 获取 数据网 视图 网格 二种 | 更新日期: 2023-09-27 17:55:28

我有两个forms。在form1中,我有两个comboboxes,它从store procedurebutton中获取两个参数来触发结果。结果应以form2显示,单击按钮时datagridview

我在form1(btn事件)中的代码。真的不知道它是否正确

private void button1_Click(object sender, EventArgs e)
{
    try
    {
        string C = ConfigurationManager.ConnectionStrings["D"].ConnectionString;
        using (var con = new SqlConnection(C))
        using (var cmd = new SqlCommand())
        {
            SqlDataReader myReader;
            cmd.CommandText = ("[dbo].[spInfo]");
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@Periode2", cbPeriode2.SelectedValue.ToString());
            cmd.Parameters.AddWithValue("@Periode1", cbPeriode1.SelectedValue.ToString());
            con.Open();
            myReader = cmd.ExecuteReader();
           if(myReader.HasRows)
            {
                DataTable datatable = new DataTable();
                datatable.Load(myReader);
                //datagridview1.DataSource = datatable;
            }
            con.Close();
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
    new Form2().ShowDialog();
} 
窗体

2 (窗体加载事件)我不知道如何在这里获取记录

private void Form2_Load(object sender, EventArgs e)
{           
}

以第二种形式获取数据数据网格视图

将数据从 form1 传递到 form2
从表格1

private void button1_Click(object sender, EventArgs e)
    {
        try
        {
            string C = ConfigurationManager.ConnectionStrings["D"].ConnectionString;
            using (var con = new SqlConnection(C))
            using (var cmd = new SqlCommand())
            {
                SqlDataReader myReader;
                cmd.CommandText = ("[dbo].[spInfo]");
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("@Periode2", cbPeriode2.SelectedValue.ToString());
                cmd.Parameters.AddWithValue("@Periode1", cbPeriode1.SelectedValue.ToString());
                con.Open();
                myReader = cmd.ExecuteReader();
                DataTable datatable = new DataTable();    
               if(myReader.HasRows)
                {
                    datatable.Load(myReader);
                    //datagridview1.DataSource = datatable;
                }
                con.Close();
                ShowForm2(datatable);
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
}
public void ShowForm2(DataTable yourData)
{
    DataTable Data = yourData;
    Form2 frm = new Form2(Data);
    frm.Show();
}   

在表单 2 上

public class Form2
{
     public Form2()
     {
        InitializeComponent();
        //Default Consturctor
     }
     private DataTable LocalData;
     public Form2(DataTable Data)
     {
        InitializeComponent();
        LocalData = Data;
     }
     public void Form2_Load(object sender, EventArgs e)
     {
              //Consume LocalData Here
     }
}