CSV Import in Datenbank

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von juju1974.

    CSV Import in Datenbank

    Hallo zusammen,

    ich habe eine CSV-Datei , die ich in eine vorhandene Tabelle meiner Datenbank importieren möchte.
    Wie mache ich das am besten. Das einlesen der CSV in ein Gridview klappt wunderbar, aber wie bekomme
    ich die Daten nun in meine Datenbank?

    Muss ich meine Gridview Zeile für Zeile auslesen? Wäre unglücklich, da es mehr als 16.000 Datensätze sind.

    Kann mir jemand helfen?
    Für mich stellt sich hier die Frage... Was für ne Datenbank.
    Zumeist bieten Datenbanken für einen CSV-Import doch selbst eine Schnittstelle an.
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    Datenbank ist eine Access Datenbank.
    Unter Access kenn ich den Import-Weg.
    Ich habe allerdings ein kleines Vb.net Programmm, welches auf eine Access Datenbank zugreift.
    ca. alle 1/4 Jahr bekomme ich aus einem anderen Programm Daten geliefert(per CSV Datei).
    Nun muessen die vorhanden Dateien aus der Tabelle xy gelöscht werden (mache ich per Delete * from xy) und die neuen
    Daten der CSV Datei eingelesen werden. - Der Benutzer soll allerdings nicht mit Access auf die Datenbank zugreifen sondern nur über das Programm.
    Mein Gedanke: Ich lese die Daten in eine Gridview - kontrolliere diese - und spiele sie dann in die Datenbank ein.
    Lösung bisher: Einlesen in GridView - klappt -
    Zeilenweise in die Datenbank schreiben klappt auch. Das ganze dauert allerdings sehr lange, daher war meine Frage, ob man das ganze beschleunigen kann.

    juju1974 schrieb:

    Der Benutzer soll allerdings nicht mit Access auf die Datenbank zugreifen sondern nur über das Programm.
    Darf das Programm mittels Access darauf zugreifen?
    In diesem Fall kannst du aus dem Programm eine Access-Instanz öffnen und dort den Import ausführen.

    VB.NET-Quellcode

    1. Dim Access As New Access.Application
    2. Access.OpenCurrentDatabase("C:\BlaBla.mdb")
    3. Access.DoCmd.TransferText ...
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Ich lese ca 16000 Datensätze aus einer CSV-Datei zeilenweise ein und schreibe sie mit 'insert into' in die Tabelle auf dem SQL-Server im Netzwerk. Das ganze dauert 12 Sekunden....
    Von Access habe ich keine Ahnung, aber das sollte auch mit ner schleife und 'Insert into xy...' keine Ewigkeiten dauern.

    P.S. Ich lese natürlich nicht erst in ein DGV ein. Ich stelle nur sicher, dass die Daten korrekt formatiert sind. Fehlerhafte Datensätze werden per try-catch abgefangen und protokolliert.
    Das Leben ist nicht so kompliziert. Eine süsse Erinnerung tut's.
    Indiana Jocutus - Jäger des Variablen-Schatzes

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „jocutus“ ()

    Ich habe das Problem gelöst.
    Ich lade die Daten per SQL Befehl in meine Datenbank.
    Eine Schema.ini habe ich für meine Daten hinterlegt.

    Code:

    "Insert INTO [Tabelle] select * FROM [Text;DATABASE=" & filePath & "].[" & filename & "]"