2014-07-14 36 views
0

我有一列中的表格列表中的另一列中的複選框。我想查看我通過點擊複選框在datagridview中顯示來自多個表的數據

選擇表中的數據

我的代碼是

 for (int i = 0; i < dataGridView2.Rows.Count; i++) 
     { 
      if (dataGridView2.Rows[i].Cells[1].Value != null) 
      { 
       if ((Boolean)dataGridView2.Rows[i].Cells[1].Value == true) 
       { 
        try 
        { 
         string myConnection="datasource=localhost;database=dmrc;port=3306;username=root;password=root"; 
         MySqlConnection myConn = new MySqlConnection(myConnection); 
         string query = "select * from dmrc." + dataGridView2.Rows[i].Cells[0].Value.ToString(); 
         MySqlCommand cmdDatabas = new MySqlCommand(query, myConn); 
         MySqlDataAdapter myDataAdapter = new MySqlDataAdapter(); 
         myDataAdapter.SelectCommand = cmdDatabas; 
         DataTable dbdataset = new DataTable(); 
         myDataAdapter.Fill(dbdataset); 
         BindingSource bSource = new BindingSource(); 
         bSource.DataSource = dbdataset; 
         f1.dataGridView1.DataSource = bSource; 
         myDataAdapter.Update(dbdataset); 
         f1.Show(); 
        } 
        catch (Exception ex) 
        { 
         MessageBox.Show(ex.Message); 
        } 
       } 
      } 

但每次它只顯示1個表的數據。我應該改變什麼,在哪裏..?

回答

0

之前,這個問題都可以回答,您可以請確認 1)如果dataGridView2.Rows [I] .Cells [1]複選框列 2)dataGridView1是要顯示一個表格下方的另一個網格其他 3)構成dataGridView1數據源的表是否具有相同順序的相同列? 由於所提供的信息不足。

當且僅當「select *」以相同的順序給出相同的列時,您可以添加多個表。在for循環之前創建一個空數據表(讓我們稱它爲master)。在每次迭代中,將新的可數據表dbdataset合併到主數據表。您可以在這裏查看語法:link。這提供了有關如何處理列和主鍵的詳細信息。數據表中的自定義修改也可以在完成之後完成。語法是link。 希望這有助於!

DataTable masterdbdataset = new DataTable(); 
//Perform custom operations here if necessary 
    BindingSource bSource = new BindingSource(); 

    for (int i = 0; i < dataGridView2.Rows.Count; i++) 
    { 
     if (dataGridView2.Rows[i].Cells[1].Value != null) 
     { 
      if ((Boolean)dataGridView2.Rows[i].Cells[1].Value == true) 
      { 
       try 
       { 
        string myConnection="datasource=localhost;database=dmrc;port=3306;username=root;password=root"; 
        MySqlConnection myConn = new MySqlConnection(myConnection); 
        string query = "select * from dmrc." + dataGridView2.Rows[i].Cells[0].Value.ToString(); 
        MySqlCommand cmdDatabas = new MySqlCommand(query, myConn); 
        MySqlDataAdapter myDataAdapter = new MySqlDataAdapter(); 
        myDataAdapter.SelectCommand = cmdDatabas; 
        DataTable dbdataset = new DataTable(); 
        myDataAdapter.Fill(dbdataset); 
        myDataAdapter.Update(dbdataset); 
        masterdbdataset.Merge(dbdataset); 
       } 
       catch (Exception ex) 
       { 
        MessageBox.Show(ex.Message); 
       } 
      } 
     } 
} 
    bSource.DataSource = masterdbdataset; 
    f1.dataGridView1.DataSource = bSource; 
    f1.Show(); 
+0

yes..cells [1]是複選框 dataGridView1被另一個網格 – user3808299

+0

好了,所以這個問題似乎是這裏: f1.dataGridView1.DataSource = bSource; 循環的每次迭代只是掃描下一個表,並使用當前表的行重置dataGridView1中的內容。你可能想要做的是「追加」行到你的dataGridView1。 – nikhilsharmaNS

+0

我該怎麼做..?你可以給我的代碼 – user3808299

相關問題