• Hi @ all,
    hier werde ich kurz erklären, wie man mit einer SQLite Datenbank in C# arbeitet.

    Was braucht ihr?

    1. Die SQLite Setup Exe von sourceforge
    2. C# :wink:

    Vorab: Der Datenbankpfad ist in diesem Tutorial immer c:\\mydatabasefile.db3

    Los geht´s:

    Als erstes installiert ihr per Setup SQLite. Damit sollte auch der Verweis eingetragen sein.
    Wenn dies erledigt ist,startet ihr eure C# IDE. Dort öffnet ihr ein neues Projekt.
    Dort tragt ihr bei using folgendes ein, wenn es noch nicht vorhanden ist:

    Code
    using System.Data;
    using System.Data.Common;
    using System.Data.SQLite;

    Neue Datenbank anlegen:
    Um eine neue Datenbank-Datei anzulegen, benutzt ihr diesen Codeausschnitt:

    Code
    SQLiteConnection.CreateFile("c:\\mydatabasefile.db3");

    Wichtig: Es muss immer erst eine Datenbank vorhanden sein.


    Verbindung zur Datenbank herstellen:
    Um eine Verbindung herzustellen, erstellt ihr zuerst eine Verbindung. Dann gebt ihr im ConnectionString den Datenbankpfad an und öffnet die Verbindung mit Open. Dies sieht so aus:

    Code
    SQLiteConnection connection = new SQLiteConnection();
                    connection.ConnectionString = "Data Source=c:\\mydatabasefile.db3";
                    connection.Open();

    Damit ist die Datenbankverbindung hergestellt.


    Datenbank verwalten:

    Mit sogenannten Commans kann man SQLite verwalten. Dabei sind MySQL-Kenntnisse aus PHP hilfreich(weiß nicht genau ob es auch bei anderen DB-Systemen so ist)
    Um überhaupt einen Command ausführen zu können, müsst ihr zuerst diesem Command deklarieren:

    Code
    SQLiteCommand command = new SQLiteCommand(connection);

    Commandliste:[INDENT]->Tabelle erstellen:
    Um eine Tabelle hinzuzufügen, gibt es Create als Command. Beispiel:

    Code
    command.CommandText = "CREATE TABLE IF NOT EXISTS Test ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,testspalte VARCHAR(100) NOT NULL);";

    [/INDENT][INDENT]->Eintrag hinzufügen:
    Um einen Eintrag hinzuzufügen, gibt es den Command Insert. Beispiel:

    Code
    command.CommandText = "INSERT INTO Test (testspalte) VALUES( 'Test-Datensatz!')";

    [/INDENT][INDENT]->Eintrag löschen:
    Um einen Datensatz zu löschen, müsste ihr Delete verwenden. Beispiel:

    Code
    command.CommandText = "DELETE from Test where testspalte='1'";

    [/INDENT][INDENT]->Eintrag updaten:
    Es gibt auch die Möglichkeit die Daten in der DB upzudaten. Beispiel:

    Code
    command.CommandText = "Update Test SET testspalte='1' WHERE ID='4' ;

    [/INDENT][INDENT]->Einträge ausgeben:
    Um Datensätze auszugeben, gibt es folgende Methode:

    Code
    command.CommandText = "SELECT * FROM Test";

    (Siehe auch weiter unten: Auslesen der Ausgabe/Mehrere Datensätze ausgeben)
    [/INDENT]Um den angegebenen Command dann auch ausführen zu lassen, nutzt man ExcuteNonQuery:

    Code
    command.ExecuteNonQuery();

    Dannach kann man, wenn man nicht noch mehr Commands ausführen will, die Ressourcen des Command freigeben:

    Code
    command.Dispose();

    Auslesen der Ausgabe/Mehrere Datensätze ausgeben:

    Um die ausgegebenen Sätze ausgeben zulassen, gibt es den sogenannten Reader. Dieser gibt den Inhalt aus dem Command wieder. Beispiel, welches mehrere Sätze ausliest:

    Code
    SQLiteDataReader reader = command.ExecuteReader();
                    while (reader.Read())
                    {
                        //output wobei reader[0].ToString() dann einen String der Reihe ausgibt. Mit dem index bei reader lässt sich der Spaltenindex/-name bestimmen, der ausgegeben werden soll
                    }

    Die Besonderheit beim reader ist, dass dieser Reader wieder geschlossen werden muss. Außerdem ist es nützlich, wenn man die Resourcen des Readers vorher freigibt. Dies sieht dann so aus:

    Code
    reader.Dispose();
                    reader.Close();

    Datenbank schließen:
    Die Datenbank zu schließen ist recht einfach. Dafür müsst ihr nur Close aufrufen. Beispiel:

    Code
    connection.Close();

    Konsolenbeispiel:
    Hier nochmal ein komplettes Beispiel, wie man mit der Datenbank arbeitet.

    Das gesamte Projekt nochmla als Anhang zum Downloaden :wink:


    Gute Links:
    Command Line Shell For SQLite
    SQLite for Net Homepage

    Dies war es schon. Falls euch etwas fehlt oder etwas falsch sein sollte, könnt ihr euch melden.

  • So Kogoro,
    Da offenbar keiner was postet oder sich alle nicht recht trauen, kommt hier mal mein Feedback.
    Dein Guide ist sehr verständlich geschrieben, alle Dinge sind mit Beispielen ausgestattet um sich einen Eindruck zu verschaffen.
    Getestet habe ich es noch nicht, jedeoch denke ich dass ich dies noch tun werde, bzw ein anderer es tut und es uns mitteilt.
    Im moment kann ich nicht viel tun, ausser deinen Guide zu pinnen, weitere Dinge erfolgen später.

    MfG internetfreak

    #pinned

  • [FONT="Franklin Gothic Medium"][COLOR="Sienna"][SIZE="2"]Danke für die positive Rückmeldung.
    Habe auch nochmal ein Konsolenbeispiel ans Tut angehängt. Hoffe man kann damit was anfangen :wink:[/SIZE][/COLOR][/FONT]

    [COLOR=Sienna]MfG
    Kogoro[/COLOR]
    [COLOR=darkorange]Support gibt es auf:[/COLOR]
    [SIZE=2][COLOR=darkorange]coding-cluster.net[/COLOR][/SIZE]

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!