Wie man eine gesamte Access-Datei in ein DataSet mit .NET einliest

Arbeiten Sie mit Microsoft Access-Dateien und suchen nach einem unkomplizierten Weg, Daten in eine .NET-Anwendung einzulesen? Egal, ob Sie C# oder VB verwenden, möglicherweise müssen Sie Daten aus einer Access-Datei (.mdb) in ein DataSet importieren. Dies kann einschüchternd wirken, wenn Sie mit den erforderlichen Programmierpraktiken nicht vertraut sind. Aber keine Sorge! In diesem Blogbeitrag zeige ich Ihnen, wie Sie dies effizient erreichen können.

Das Problem

Gibt es einen einfachen Weg, um eine gesamte Access-Datei in ein DataSet in .NET einzulesen? Sie möchten möglicherweise auch wissen, wie Sie eine Liste von Tabellen aus einer Access-Datei abrufen können, sodass Sie durch diese iterieren und jede einzelne nacheinander zu Ihrem DataSet hinzufügen können. Glücklicherweise gibt es eine Lösung, die wir mit nur wenigen Zeilen Code umsetzen können.

Lösungsübersicht

Erforderlicher Namensraum

Bevor wir in den Code eintauchen, stellen Sie sicher, dass die folgenden Namensräume in Ihr Projekt aufgenommen werden:

Imports System.Data.OleDb

Der Namensraum OleDb stellt Klassen zur Verfügung, mit denen Sie über OLE DB auf Daten aus verschiedenen Quellen zugreifen können.

Schritt-für-Schritt-Codeimplementierung

Hier ist ein prägnantes Stück Code, das veranschaulicht, wie man eine gesamte Access-Datei in ein DataSet einliest.

Using cn = New OleDbConnection(connectionstring)
    cn.Open()
    Dim ds As DataSet = New DataSet()

    Dim Schema As DataTable = cn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, Nothing, "TABLE"})
    For i As Integer = 0 To Schema.Rows.Count - 1
        Dim dt As DataTable = New DataTable(Schema.Rows(i)!TABLE_NAME.ToString())

        Using adapter = New OleDbDataAdapter("SELECT * FROM " + Schema.Rows(i)!TABLE_NAME.ToString(), cn)
            adapter.Fill(dt)
        End Using

        ds.Tables.Add(dt)
    Next i
End Using

Codeerklärung

  1. Verbindung herstellen: Der Code beginnt damit, eine neue OleDbConnection unter Verwendung einer bereitgestellten connectionstring zur Verbindung mit der Access-Datenbank zu erstellen.

  2. Verbindung öffnen: Die Methode cn.Open() öffnet die Datenbankverbindung und ermöglicht es Ihnen, darauf zu operieren.

  3. Ein DataSet erstellen: Sie instanziieren ein neues DataSet (ds), das die Daten aus der Access-Datei halten wird.

  4. Das Schema abrufen: Die Methode GetOleDbSchemaTable ruft die Schema-Informationen aus der Access-Datei ab, insbesondere die Namen der enthaltenen Tabellen.

  5. Durch Tabellen iterieren: Eine For-Schleife durchläuft jede Tabelle im abgerufenen Schema:

    • Für jede Tabelle wird ein neuer DataTable unter Verwendung ihres Namens erstellt.
    • Ein OleDbDataAdapter wird erstellt, um alle Datensätze (SELECT *) aus der aktuellen Tabelle abzurufen.
    • Der Adapter füllt den DataTable mit Daten.
    • Schließlich wird der gefüllte DataTable dem DataSet hinzugefügt.

Abschließende Anmerkungen

Mit diesem Ansatz haben Sie Ihre .NET-Anwendung eingerichtet, um Daten aus einer gesamten Access-Datei effizient zu lesen. Die Kombination aus OleDbConnection und OleDbDataAdapter macht es einfach, die Datenbankverbindung und die Datenabfrage zu verwalten. Dieses Verfahren ermöglicht Ihnen nicht nur den Zugriff auf alle Tabellen, sondern bereitet auch die Daten für weitere Manipulationen oder Analysen innerhalb Ihrer Anwendung vor.

Fazit

Zusammenfassend lässt sich sagen, dass die Arbeit mit Access-Dateien in .NET noch nie einfacher war. Sie haben jetzt die Werkzeuge und das Wissen, um Daten in ein DataSet einzulesen und Ihre Access-Datenbanken programmatisch zu erkunden. Zögern Sie nicht, den Code nach Bedarf anzupassen und zu modifizieren, um Ihren spezifischen Anforderungen gerecht zu werden. Viel Spaß beim Programmieren!