我有以下子。我有一个字符串数组,例如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 As DataTable = DS.Tables(FileElement))并将数据放入这个表一遍又一遍。但是我如何为每个数组元素创建一个表?
答案 0 :(得分: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)
答案 1 :(得分: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