2015-02-11 73 views
0

我對c#非常陌生,所以很抱歉,如果這是一個新手問題。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(); 
     } 
    } 
+0

可能重複[如何將多個文本框的數據從一個窗體傳遞到另一個按鈕單擊?](http://stackoverflow.com/questions/14782244/how-to-pass-data-of-multiple-文本框從一個窗體到另一個按鈕窗口) – DonBoitnott 2015-02-11 12:07:45

+0

基本前提總是相同的:通過第二個窗體ctor傳遞,或者使用公開的屬性。 – DonBoitnott 2015-02-11 12:08:40

回答

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

乾杯!

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

與創建全球公共ClassDataTable

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

次訪問它在Form2

DataTable dt=Globals.Globaldt; 
+0

使用這種方法很不好..這會使內存過載 – Phoenician 2015-02-11 12:22:09

相關問題