2013-08-26 4 views
0

J'ai le sous-paragraphe suivant. J'ai un tableau de chaînes avec, par exemple, 3 cordes (a, b, c). Je veux remplir des datatables avec des données d'excelsheets et nommer les tables a, b, c.Création de plusieurs données pour chaque boucle

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) 

exécution de ce code me donner une erreur « ds.Tables (1) ne marche pas exister. D'après ma compréhension est ce parce que je crée une seule table (Dim dt DataTable = ds.Tables (FileElement)) et mettre les données dans ce tableau, encore et encore Mais comment puis-je créer une table pour chaque élément de tableau

+0

Qu'est-ce que DS.Tables? – varocarbas

+0

Dim DS en tant que nouveau DataSet() – ruedi

+0

OK. Je suppose que vous avez déjà reçu votre réponse. – varocarbas

Répondre

0

Vous devez ajouter explicitement nouveau DataTable à la collection de tableaux de DataSet.?

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

génial cela fonctionne! Merci beaucoup! – ruedi

0

Vous ne l'avez pas avoir 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 
Questions connexes