Die Community zu .NET und Classic VB.
Menü

Tipp-Upload: VB.NET 0341: CSV mit OleDb einlesen

 von 

Über den Tipp  

Dieser Tippvorschlag wird übernommen.

Der Vorschlag ist in den folgenden Kategorien zu finden:

  • Datenbanken und XML

Dem Tippvorschlag wurden folgende Schlüsselwörter zugeordnet:
csv, oledb

Der Vorschlag wurde erstellt am: 07.02.2009 19:36.
Die letzte Aktualisierung erfolgte am 13.02.2012 16:07.

Zurück zur Übersicht

Beschreibung  

Der OleDbProvider unterstützt auch Datenzugriff auf Textfiles (.csv)
Dabei wird nicht die einzelne Datei als Datenbank betrachtet, sondern der Ordner, der sie beinhaltet.
Die einzelne Datei wird als Tabelle aufgefasst und ist per Sql anzusprechen.
Das Laden dieses Formates gestaltet sich einfach, jedoch schon ein sauberes Abspeichern gemachter Änderungen erfordert ein genaues Zusammenpassen von Daten und Datenverarbeitung.
Auch hat CSV keine einheitliche Regelung zur Typumwandlung, und bietet kaum Unterstützung bei der Verarbeitung komplexerer Datenstrukturen (z.B. verschachtelte Tabellen)
In jedem Anwendungsfall, der über das Einlesen von String-Tabellen hinausgeht, ist also Xml vorzuziehen (etwa gelesen/geschrieben durch ein typisiertes Dataset).
siehe z.B. (Dataset ohne Datenbank verwenden)

Schwierigkeitsgrad

Schwierigkeitsgrad 1

Verwendete API-Aufrufe:

Download:

Download des Beispielprojektes [16,92 KB]

' Dieser Source stammt von http://www.activevb.de
' und kann frei verwendet werden. Für eventuelle Schäden
' wird nicht gehaftet.

' Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
' Ansonsten viel Spaß und Erfolg mit diesem Source!
'
' Beachten Sie, das vom Designer generierter Code hier ausgeblendet wird.
' In den Zip-Dateien ist er jedoch zu finden.

' ------------ Anfang Projektgruppe CsvOleDb.sln  ------------
' ----------- Anfang Projektdatei CsvOleDB.vbproj  -----------
' --------------- Anfang Datei frmCsvOleDB.vb  ---------------
' IDE-Voreinstellungen:
' Option Strict On
' Option Explicit On

' Projekt-Voreinstellungen
' Imports System
' Imports System.Drawing
' Imports System.Windows.Forms

Imports System.Data
Imports System.Data.OleDb

Public Class frmCsvOleDB

    Private Sub frmCsvOleDB_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load

        Dim _tb As New DataTable

        Me.DataGridView1.DataSource = _tb

        Dim SrcDir As String = "..\.." ' das dem aktuellen Verzeichnis 2 Ebenen übergeordnete

        ' Zur ConnectionString-Syntax siehe: http://www.connectionstrings.com/textfile
        Dim sConn As String = String.Join(";", New String() { _
            "Provider=Microsoft.Jet.OLEDB.4.0", "Data Source=" & SrcDir, "Extended " & _
            "Properties=""Text; HDR=Yes; FMT=Delimited"""})

        Dim SQL As String = "Select * From [Article.csv];"

        Using Cn As New OleDbConnection(sConn), ta As New OleDbDataAdapter(SQL, Cn)
            Cn.Open()
            ta.Fill(_tb)
        End Using

    End Sub

End Class

' ---------------- Ende Datei frmCsvOleDB.vb  ----------------
' ------------ Ende Projektdatei CsvOleDB.vbproj  ------------
' ------------- Ende Projektgruppe CsvOleDb.sln  -------------

	

Diskussion  

Diese Funktion ermöglicht es, Fragen, die die Veröffentlichung des Tipps betreffen, zu klären, oder Anregungen und Verbesserungsvorschläge einzubringen. Nach der Veröffentlichung des Tipps werden diese Beiträge nicht weiter verlinkt. Allgemeine Fragen zum Inhalt sollten daher hier nicht geklärt werden.
Folgende Diskussionen existieren bereits

CSV mit OleDb einlesen - Dario 08.02.2009 11:48

Um eine Diskussion eröffnen zu können, müssen sie angemeldet sein.