SQLite Command Parameter

  • VB.NET

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

    SQLite Command Parameter

    Hallo zusammen,

    wie kann ich die Commandparameter in VB.Net verwenden?

    sqlitetutorial.net/sqlite-import-csv/

    .mode csv
    .output test.csv
    Select Case * From Kontakte;
    .output stdout

    Leider habe ich keine Möglichkeit gefunden.

    Vielen Dank

    Goof

    *Topic verschoben*

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Die Befehle, welche mit einem Punkt anfangen, sind nur über die Command Line Shell von SQLite verfügbar, aber nicht über die SQLite*-Klassen in .NET.
    Wenn du also nicht die Shell von SQLite (via Process + Std. Input/Output umleiten) fernsteuern willst, lautet die Antwort "gar nicht".

    Wenn es dir darum geht, eine CSV-Datei zu exportieren, wäre der übliche Weg vermutlich die Daten via SQLiteCommand und SQLiteDataReader zu lesen (wenn sie nicht schon als DataTable o.ä. vorliegen) und selbst in eine Datei auszugeben.
    Die Command Line Shell von SQLite wäre eigentlich das, was ich gerne benutzen würde. Kannst Du mir da vielleicht mit einem Beispiel weiter helfen? Habe leider nichts gefunden. Oder gibt es noch einen einfacheren Weg Daten aus SQLite in eine CSV-Datei zu exportieren oder auch zu importieren?
    Das kommt darauf an wie du die CSV bzw. die Daten darin speichern möchtest.

    Wenn es wichtig ist, dass die Daten anderen Aufrufern als Tabelle in SQLite verfügbar sind, kommst du nicht drum herum, die CSV auszulesen, und Zeile für Zeile in die Datenbank einzutragen (oder auch als ein großer Insert, falsch gewünscht)

    Sollte es lediglich wichtig sein, die CSV als Datei abrufen zu können, kannst du auch einfach die Datei über einen FileReader/StreamReader in ein byte[] einlesen, und dann in einem BLOB Feld speichern. Zum auslesen das Gegenteil.
    Im Moment habe ich es so gelöst:

    Process.Start("C:\SQLite\sqlite-tools\Batch_Export.bat")

    Batch_Export.bat

    sqlite3.exe Kontakte.sqlite < Parameter_Export.txt
    echo "Daten erfolgreich exportiert" > Daten_Export.txt

    Parameter_Export.txt

    .mode csv
    .separator ,
    .output Export_Kontakte.csv
    select * from Kontakte;
    .exit

    Batch_Import.bat

    sqlite3.exe Kontakte.sqlite < Parameter_Import.txt
    echo "Daten erfolgreich importiert" > Daten_Import.txt

    Parameter_Import.txt
    .mode csv
    .import C:/Temp/Export_Kontakte.csv test_tbl1
    .exit

    Würde es aber gerne ohne die Batchdatei lösen. So lassen sich die Daten ex- und wieder importieren.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Goof“ ()

    Wie schon gesagt, du musst dafür selbst für den Import die csv Datei auslesen, und für den Export die csv erstellen.

    Damit du jedoch nicht alles von Hand machen musst, was die CSV angeht, gibt es im Internet verschiedene Hilfsmittel:
    TextFieldParser (VersteckesJuwel im VisualBasic Namespace, jedoch nur zum lesen)
    ReadWriteCsv.cs
    Oder ein NuGet Package: CSVHelper
    Um mal nur ein paar zu nennen.

    Und was die DB Seite angeht, ist das mit nem DataReader für den export und Parameterisierten Inserts für den Import schnell erledigt