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 As DataTable = DS.Tables(FileElement))并将数据放入此表中一遍又一遍。但是我怎样才能为每个数组元素创建一个表呢?

4

2 回答 2

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
于 2013-08-26T15:37:53.667 回答
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)
于 2013-08-26T14:45:36.440 回答