c#将Data表中的数据传递给另一个表单

时间:2015-02-11 12:02:22

标签: c# mysql datatable

我对c#非常陌生,很抱歉,如果这是一个新手问题。

我有一个表格,其数据网格连接到MySQL数据库。

我已经做到了所以它选择整行,当你双击该行时,它会打开一个新表格。

我现在要做的是在第二个表单中放置一些文本框,其中填写了用户在上一个表单中选择的数据。

到目前为止,这是我的代码。

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            string connectionString = "datasource=*****;database=****;username=****;password=****;";
            string query = "select firstname, surname, email from users;";
            MySqlConnection connection = new MySqlConnection(connectionString);
            MySqlCommand command = new MySqlCommand(query, connection);
            connection.Open();
            MySqlDataAdapter adapter = new MySqlDataAdapter();
            adapter.SelectCommand = command;
            DataTable dTable = new DataTable();
            adapter.Fill(dTable);
            dataGridView1.DataSource = dTable;
            connection.Close();
        }

        private void viewData(object sender, DataGridViewCellEventArgs e)
        {
            Form2 secondForm = new Form2();
            secondForm.Show();
        }
    }

3 个答案:

答案 0 :(得分:0)

您可以将字符串数据传递给Form2的构造函数。例如:

窗体2:

public partial class Form2 : Form
    {
        public Form2()
        {
          ....
        }

        public Form2(string data)
        {
          textBox1.Text=data;
        }

    }
Form1上的

.......
 private void viewData(object sender, DataGridViewCellEventArgs e)
        {
            string mydata=///...
            Form2 secondForm = new Form2(mydata);
            secondForm.Show();
        }

答案 1 :(得分:0)

创建全局公开Class,其中包含DataTable

喜欢

public static class Globals
{
DataTable Globaldt=new DataTable();
}     

像在Form2上一样访问它

DataTable dt=Globals.Globaldt;

答案 2 :(得分:0)

您需要将数据表作为变量发送到seconde类的构造函数中:

例如..在你的情况下:

public partial class Form1 : Form
    {
        public Form1()
        {
          //code that you have already wrote 
          Form2 f2 = new Form2(dTable);
          f2.ShowDialog();
        }
     }
public partial class Form2 : Form
    {
        public Form2(Datatable table)
        {
            //Do whatever you want with this table
            //Example 
            label1.Text = table.Rows[0][0].ToString();
        }
    }

干杯!