2012-10-22 45 views
0

我再問一次,因爲我真的是新的VB,我使用Visual Studio 2010和MySQL的數據庫,我需要幫助獲得不同的列從不同的表,但相同的數據庫並將其加載到一個datagridview。任何形式的幫助或提示將不勝感激。謝謝,麻煩您了。從多個表獲取列到1 datagridview在vb.net

+0

你有什麼嘗試嗎? – Habibillah

+0

你知道如何在sql中連接表嗎? –

回答

1

一種方法是使用一個DataTable所有聯接的列作爲數據源,你可以用填充DataAdapter

Private Function GetDataSource() As DataTable 
    Const sqlSelect As String = "SELECT a.Col1 AS aCol1,a.Col2 AS aCol2,b.Col1 AS bCol1,b.Col2 AS bCol2 " & _ 
           "FROM dbo.TableA AS a INNER JOIN dbo.TableB AS b ON a.IdCol=b.aIdCol " & _ 
           "ORDER BY aCol1 ASC,bCol1 ASC" 
    Try 
     Dim table = New DataTable() 
     Using con = New MySqlConnection(My.Settings.MySqlConnectionString) 
      con.Open() 
      Using da = New MySqlDataAdapter(sqlSelect, con) 
       da.Fill(table) 
       Return table 
      End Using 
     End Using 
    Catch ex As Exception 
     ' log message instead ' 
     Throw ' don't use throw new Exception or throw ex ' 
    End Try 
End Function 

現在你可以使用這個DataTable作爲數據源的DataGridView

me.dataGridView1.DataSource = GetDataSource() 
+0

謝謝你的回覆...我現在試着用這個...我會更新你。再次感謝。 –

+0

@TimSchemlter請耐心等待我對vb和sql只是一個新東西......「ON a.IdCol = b.aIdCol」這行是什麼意思? –

+0

@ user1746113:對不起,我首先忽略了MySQL標記,因此編輯了相應的答案,將其考慮在內。內部[**連接**](http://dev.mysql.com/doc/refman/5.1/en/join.html)將僅選擇連接的鍵在兩個指定表中的記錄。由於您沒有顯示數據模型,因此我使用了示例性列。在這種情況下,'TableA'是父表,'TableB'是在外鍵列中引用'TableA'的子表。所以'TableB.aIdCol'只是一個引用'TableA'主鍵的列的例子。 'ON'子句連接兩個表。 –