2013-08-26 29 views
0

我有以下的子。我有一個字符串數組,例如3個字符串(a,b,c)。我想用excelsheets中的數據填充數據表並命名錶a,b,c。爲每個循環創建多個數據表

Sub create_Dataset(ByVal ParamArray DataTableNames() As String) 
For Each FileElement In DataTableNames 
... 
MyConnection.Open() 
da.Fill(DS, FileElement) 
MyConnection.Close() 
Dim dt As DataTable = DS.Tables(FileElement) 
Form1.DataGridView1.DataSource = DS.Tables(0) 
Form1.DataGridView2.DataSource = DS.Tables(1) 

運行這段代碼給我一個錯誤「ds.Tables(1)犯規存在。根據我的理解,這是因爲我只創建一個表(DIM DT作爲數據表= DS.Tables(FileElement))和把數據放到這個表了一遍又一遍,但我怎樣才能創建一個表中的每個數組元素

+0

什麼是DS.Tables? – varocarbas

+0

Dim DS As New DataSet() – ruedi

+0

OK。我想你已經得到了你的迴應。 – varocarbas

回答

0

你需要新的DataTable明確添加到DataSet的Tables集合:?

Sub create_Dataset(ByVal ParamArray DataTableNames() As String) 
    Dim DT as DataTable 
    MyConnection.Open() 

    For Each FileElement In DataTableNames 
    ... 
     DT = New DataTable(FileElement) 
     da.Fill(DT) 
     DS.Tables.Add(DT) 
    Next 

    MyConnection.Close() 

    Form1.DataGridView1.DataSource = DS.Tables(0) 
    Form1.DataGridView2.DataSource = DS.Tables(1) 
+0

偉大的作品!非常感謝你! – ruedi

0

你沒有有DS.Tables(1)...

Sub create_Dataset(ByVal ParamArray DataTableNames() As String) 
    Dim DS As New DataSet 

    MyConnection.Open() 
    For Each FileElement In DataTableNames 
     ... 

     da.Fill(DS, FileElement) 
    Next 
    MyConnection.Close() 

    Form1.DataGridView1.DataSource = DS.Tables(0) 
    Form1.DataGridView2.DataSource = DS.Tables(1) 
End Sub