2009-07-17 10 views
3

Ich versuche, SQLite3 in C# .NET zu verwenden. Ich habe gegoogelt und verschiedene APIs gefunden. Ich habe auch die Website von SQLite auf Wrapper überprüft. Ich mag sie, aber ich möchte meinen eigenen Wrapper schreiben, ohne eine zusätzliche Abhängigkeit zu verwenden. Alle Wrapper, die keine zusätzliche Abhängigkeit erfordern, sind nicht kostenlos.SQLite3 in C# .NET

Ich frage mich, wie man aus einer SQLite3-Datenbank lesen, ausführen und schreiben würde. Ist es eine Socketverbindung (tcp? Udp? Etc?)? Ich habe versucht, diese Antwort auf Google zu suchen, und alles, was ich bekomme, sind Bibliothek-spezifische Antworten. :/SQLite's Website-Dokumente sind auch nicht viel Hilfe.

EDIT: Ich habe auch eine COM interface beim googeln gefunden, aber ist diese Bibliothek spezifisch?

Danke SO! :)

Antwort

7

Haben Sie sich die System.Data.SQLite Bibliothek angesehen? Es ist eine kostenlose ADO.NET-Bibliothek, die mit SQLite interagiert und nichts anderes benötigt, um ausgeführt zu werden, da die Engine darin integriert ist.

Ich benutze es seit einer Weile und finde es wirklich einfach zu arbeiten. Es hat sogar ein Plugin für Visual Studio, falls Sie sich dazu entschließen, einige stark typisierte Tabellen damit zu verwenden oder es zum Hinzufügen/Erstellen von Tabellen zu verwenden.

+0

hmmm. Ich erinnere mich, dass ich das einmal angeschaut habe. Ich werde es jetzt erneut untersuchen. – Zack

+0

Danke. Ich denke du hast mir geholfen klarzustellen, was ich wirklich wollte. Ich werde googeln mit dieser Klarstellung. :) – Zack

1

Wenn Sie in .NET SQLite verwenden möchten, sollten Sie einen Blick auf System.Data.SQLite, nehmen Sie das ein ADO.NET-Provider für SQLite ist

5

(Beantwortung der "Socket-Verbindung" Frage.)

Teil Der Sinn von SQLite ist, dass es sich um eine eingebettete Datenbank handelt - es gibt keinen Server, mit dem man sprechen kann, man lädt die Bibliothek direkt in den Prozess und spricht direkt mit dem Dateisystem.

1

System.Data.SQLite ist vergleichsweise langsamer als andere Anbieter wie SqlClient. Ich habe in seinen Code geschaut.

Jetzt möchte ich es nennen werfen P/Invoke aber nicht wie SQLite-Provider. Es ruft durch P/Invoke jedes Mal auf, wann immer Sie auf Spaltenwert durch DataReader zugreifen