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
-
Verbindung herstellen: Der Code beginnt damit, eine neue
OleDbConnection
unter Verwendung einer bereitgestelltenconnectionstring
zur Verbindung mit der Access-Datenbank zu erstellen. -
Verbindung öffnen: Die Methode
cn.Open()
öffnet die Datenbankverbindung und ermöglicht es Ihnen, darauf zu operieren. -
Ein DataSet erstellen: Sie instanziieren ein neues
DataSet
(ds
), das die Daten aus der Access-Datei halten wird. -
Das Schema abrufen: Die Methode
GetOleDbSchemaTable
ruft die Schema-Informationen aus der Access-Datei ab, insbesondere die Namen der enthaltenen Tabellen. -
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
demDataSet
hinzugefügt.
- Für jede Tabelle wird ein neuer
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!