Datagridview DataSource dynamisch setzen

03/09/2009 - 11:06 von Frank Bach | Report spam
Hallo NG,

von einer XML-Datei bekomme ich den Namen einer im Programm vorhanden
DataTable als Stringvariable geliefert.
(es gibt sehr viele DataTables im Programm)

Wie kann ausgehend von der Stringvariable die gleichnamige Datatable z.B. an
ein Datagridview binden?

Z.B.

Dim DT_aaa as Datatable
Dim DT_bbb as Datatable
usw.

Dim DT_Name as string = "DT_bbb"

Datagridview1.datasource = ?????? DT_Name ??????????????


Danke!

Frank
 

Lesen sie die antworten

#1 Elmar Boye
03/09/2009 - 11:44 | Warnen spam
Hallo Frank.

Frank Bach schrieb:
von einer XML-Datei bekomme ich den Namen einer im Programm vorhanden
DataTable als Stringvariable geliefert.



"Einer im Programm vorhanden DataTable" ist sehr vage.
Sind die Variablen verteilt über verschiedene Klassen,
zusammengefasst in einem Modul oder...

Wie kann ausgehend von der Stringvariable die gleichnamige Datatable
z.B. an ein Datagridview binden?

Dim DT_aaa as Datatable
Dim DT_bbb as Datatable
usw.



Wenn Deine DataTable einzelne Instanz- oder Shared Variablen
sind, und das so bleiben soll, wàre ein zusàtzliches
Dictionary(Of String, DataTable) sehr hilfreich.
Allerdings mußt Du dort dafür sorgen, dass das Dictionary
beim Erstellen der DataTable entsprechend gefüllt wird.
(Und auf lange Sicht könnten die Einzel-Variablen ganz
entfallen)

Eine Alternative wàre ein DataSet, das alle DataTable
Instanzen enthàlt. Das würde nebenbei auch die Zahl
der Variablen reduzieren.

Wenn weder noch wird es hàsslich (und schnell wackelig):
Dann müsstest Du via Reflection zugreifen.

Dim DT_Name as string = "DT_bbb"

Datagridview1.datasource = ??????
DT_Name ??????????????



Wenn Du an eine DataTable (respektive deren DataView) bindest,
wàre nur die DataSource zu setzen, DataMember bleibt leer.

Bei einem DataSet würde in DataSource das DataSet und in
DataMember der Tabellenname zugewiesen werden.

Gruß Elmar

Ähnliche fragen