none
"Typisiertes DataSet" zur Laufzeit erstellen RRS feed

  • Frage

  • Hallo liebe Gemeinde,

    ich habe eine Access-Datenbank vorliegen, und möchte eine Art "typisiertes DataSet" zur Laufzeit erstellen. Ich stelle mir das blauäugig ungefähr so vor:

    • ich habe den ConnectionString zu einer Access-Datei
    • wenn das Programm startet, dann wird die Datenbank geöffnet, analysiert und dann zur Laufzeit ein DataSet erstellt, auf das ich dann über die gesamte Anwendung zugreifen kann. Im Idealfall wird das DataSet "gespeichert" und nur dann geändert, wenn sich an der Datenbank etwas geändert hat.

    Geht soetwas oder ist das völlig bescheuert? Wieviel Aufwand steht dahinter? Könnt Ihr mir da helfen? Tausend Dank im Voraus für Eure Mühe!

    Gruß
    Marcus


    Der erste Tag, an dem ich nichts Neues lerne, wird der Tag sein, an dem sich der Deckel über mir schließt...
    Mittwoch, 9. Februar 2011 21:45

Antworten

  • Hallo Marcus,

    "typisierte DataSets" kann man zur Laufzeit nicht erstellen.
    Denn die erzeugt bereits Visual Studio anhand der XML-Informationen als VB (bzw. CS) Datei -
    die siehst Du, wenn Du alle Dateien in der Projektmappe anzeigen lässt.

    Zur Laufzeit würde das auch keinen Sinn ergeben, da das Programm dies nicht nutzen könnte -
    es hätte selbst keine Typinformationen vorliegen und würde nur "untypisierte" Daten übergeben können.

    Arbeiten kann man aber genausogut untypsiert, in dem man ein DataSet über die FillSchema Methode
    erstellt. Die notwendigen Informationen über vorhandene Tabellen kann dir wiederum die GetSchema-Methode

    (oder auch die ältere GetOleDbSchemaTable ) liefern, siehe dazu
    Abrufen von Schemainformationen aus einer Datenbank (ADO.NET)

    Dann ist das ganze zwar nicht "typisiert" und man sollte ggf. einige Vorkehrungen bezüglich korrekter Dateneingabe treffen,
    aber für die Windows Forms Datenbindung spielt das z. B. sowieso keine Rolle -
    die arbeitet via Reflection und ermittelt ihre Informationen darüber.

    Gruß Elmar

    Montag, 14. Februar 2011 16:44

Alle Antworten

  • Hallo Marcus,

    "typisierte DataSets" kann man zur Laufzeit nicht erstellen.
    Denn die erzeugt bereits Visual Studio anhand der XML-Informationen als VB (bzw. CS) Datei -
    die siehst Du, wenn Du alle Dateien in der Projektmappe anzeigen lässt.

    Zur Laufzeit würde das auch keinen Sinn ergeben, da das Programm dies nicht nutzen könnte -
    es hätte selbst keine Typinformationen vorliegen und würde nur "untypisierte" Daten übergeben können.

    Arbeiten kann man aber genausogut untypsiert, in dem man ein DataSet über die FillSchema Methode
    erstellt. Die notwendigen Informationen über vorhandene Tabellen kann dir wiederum die GetSchema-Methode

    (oder auch die ältere GetOleDbSchemaTable ) liefern, siehe dazu
    Abrufen von Schemainformationen aus einer Datenbank (ADO.NET)

    Dann ist das ganze zwar nicht "typisiert" und man sollte ggf. einige Vorkehrungen bezüglich korrekter Dateneingabe treffen,
    aber für die Windows Forms Datenbindung spielt das z. B. sowieso keine Rolle -
    die arbeitet via Reflection und ermittelt ihre Informationen darüber.

    Gruß Elmar

    Montag, 14. Februar 2011 16:44
  • Hallo mjanz,

    Ich gehe davon aus, dass die Antwort Dir weitergeholfen hat.
    Solltest Du noch "Rückfragen" dazu haben, so gib uns bitte Bescheid.

    Grüße,
    Robert

    Freitag, 18. Februar 2011 09:42