0

I have two forms. In form1 I have two comboboxes which takes two parameters from a store procedure and a button to fire the results. The results should be displayed in form2 which has a datagridview when the button is clicked.

My code in form1 (btn event). Don't really know if it is correct

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();
} 

Form2 (formload event) I don't know how to fetch the records here

private void Form2_Load(object sender, EventArgs e)
{           
}
Konamiman
  • 49,681
  • 17
  • 108
  • 138
James
  • 23
  • 4

1 Answers1

0

Pass the data from form1 to form2
From Form1

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();
}   

On Form2

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
     }
}
Amit Bisht
  • 4,870
  • 14
  • 54
  • 83