将一个表单数据传递给另一个表单数据网格视图

时间:2017-01-17 05:25:02

标签: c# sql-server windows winforms visual-studio

我有一个带有datagridview的结算表单。此表单包含更新最后一个帐单按钮,该按钮打开一个新窗口,要求输入帐单编号。我正在根据帐单编号获取值,并希望以其他形式显示它。如何将表值从一个表单传递到另一个表单datagridview?

SqlConnection con = new SqlConnection(CS);
                    con.Open();
SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM POS WHERE Bill_No=@Billno", con);
da.SelectCommand.Parameters.AddWithValue("@Billno", txt_EnterBillNoPOS.Text);

我想存储此结果并将其显示在另一个表格datagridview中。

1 个答案:

答案 0 :(得分:0)

如果我以正确的方式理解您的问题,您希望将子格式的数据传输回Mainform。为此,您可以在子窗体上使用属性(例如,有许多可能的解决方案)。这看起来很......像这样:

//Your third Form filled with billdata from second Form.
public class ThirdForm : Form
{       
   public ThirdForm(DataTable billData)
   {
      InitializeComponent();
      yourGrid.DataSource = billData;
   }
}

//Your secondform fetch the data and start the thirdform
public class SecondForm : Form
{        
   private void OnUpdateButton_Clicked(object sender, EventArgs e)
   {
      SqlConnection con = new SqlConnection(CS);
                              con.Open();
      SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM POS WHERE Bill_No=@Billno", con);
      da.SelectCommand.Parameters.AddWithValue("@Billno", txt_EnterBillNoPOS.Text);

       DataTable result = new DataTable();
       da.Fill(result); //Fill your Table with data

       //Here you pass the data via Constructor
       var thirdForm = new ThirdForm(result);
       thirdForm.Show();
    }
}

//The firstform which starts your flow by activating secondform
public class FirstForm : Form
{   
    private void OnUpdateLastButton_Clicked(object sender, EventArgs e)
    {
       var childForm = new SecondForm();
       childForm.Show(); //Shows the second form
    }
}

这应该对你有帮助。