zu verbinden und zu verwenden Ich habe dies bereits in C++ getan, indem ich sqlite.h eingeschlossen habe, aber gibt es einen ähnlich einfachen Weg in C#?Was ist der beste Weg, um eine SQLite-Datenbank von C#
Antwort
ADO.NET 2.0 Provider for SQLite hat über 200 Downloads jeden Tag, so denke ich, dass Sie sicher sind, dass man diesen verwendet.
Es gibt eine Liste der Sqlite Wrapper für .Net unter http://www.sqlite.org/cvstrac/wiki?p=SqliteWrappers. Von dem, was ich gehört habe http://sqlite.phxsoftware.com/ ist ziemlich gut. Dieser ermöglicht Ihnen den Zugriff auf Sqlite über ADO.Net wie jede andere Datenbank.
Ich habe dies mit großem Erfolg eingesetzt:
http://system.data.sqlite.org/
ohne Einschränkungen Free.
(Anmerkung Aus der Bewertung: Original Site nicht mehr vorhanden Der obige Link einen Link zeigt die die 404 Seiten hat und hat alle Informationen des Originals.)
--Bruce
Es gibt auch jetzt ist das Option: http://code.google.com/p/csharp-sqlite/ - ein vollständiger Port von SQLite nach C#.
Ich bin mit, Bruce. Ich benutze http://system.data.sqlite.org/ mit großem Erfolg. Hier ist eine einfache Klasse Beispiel, dass ich erstellt:
using System;
using System.Text;
using System.Data;
using System.Data.SQLite;
namespace MySqlLite
{
class DataClass
{
private SQLiteConnection sqlite;
public DataClass()
{
//This part killed me in the beginning. I was specifying "DataSource"
//instead of "Data Source"
sqlite = new SQLiteConnection("Data Source=/path/to/file.db");
}
public DataTable selectQuery(string query)
{
SQLiteDataAdapter ad;
DataTable dt = new DataTable();
try
{
SQLiteCommand cmd;
sqlite.Open(); //Initiate connection to the db
cmd = sqlite.CreateCommand();
cmd.CommandText = query; //set the passed query
ad = new SQLiteDataAdapter(cmd);
ad.Fill(dt); //fill the datasource
}
catch(SQLiteException ex)
{
//Add your exception code here.
}
sqlite.Close();
return dt;
}
}
Es gibt auch eine NuGet package: System.Data.SQLite zur Verfügung.
"Datenquelle =/Pfad/zu/Datei.db; Neu = Falsch; " *** Wenn Sie nicht alle Ihre Daten und Tabellen jedes Mal verlieren möchten ***. – Fil
funktioniert nicht in VS 2017.Es zeigt den folgenden Fehler: Nicht behandelte Ausnahme: System.BadImageFormatException: Konnte Datei oder Assembly nicht laden 'System.Data.SQLite, Version = 1.0.79.0, Culture = neutral, PublicKeyToken = db937bc2d44ff139'. Es wurde versucht, ein Programm mit einem falschen Format zu laden. bei ConsoleApp1_del2.Program.Main (String [] args) –
Mono kommt mit einer Verpackung, benutzen Sie ihre!
https://github.com/mono/mono/tree/master/mcs/class/Mono.Data.Sqlite/Mono.Data.Sqlite_2.0 gibt Code, um die tatsächliche SQLite dll (http://www.sqlite.org/sqlite-shell-win32-x86-3071300.zip gefunden auf der Download-Seite http://www.sqlite.org/download.html/) in einem .net freundliche Weise zu wickeln. Es funktioniert unter Linux oder Windows.
Dies scheint die dünnste aller Welten zu sein und Ihre Abhängigkeit von Bibliotheken von Drittanbietern zu minimieren. Wenn ich dieses Projekt von Grund auf machen müsste, würde ich es so machen.
Eine weitere Möglichkeit zur Verwendung der SQLite-Datenbank in .NET Framework ist die Verwendung von Fluent-NHibernate.
[Es NET-Modul ist, das um NHibernate wickelt. (ORM-Modul - Object Relational Mapping) und ermöglicht NHibernate programmatisch konfigurieren (ohne XML-Dateien) mit dem fließenden Muster]
Hier die kurze ist ‚Getting Started‘ Beschreibung wie dies in C# Schritt für Schritt zu tun:
https://github.com/jagregory/fluent-nhibernate/wiki/Getting-started
Es einen Quellcode als Visual Studio Projekt umfasst.
https://github.com/praeclarum/sqlite-net ist jetzt wahrscheinlich die beste Option.
Dies ist ein Duplikat dieser Frage: http://stackoverflow.com/questions/93654/is-there-a-netc-wrapper-for-sqlite und hat eine andere Antwort. –
Mögliches Duplikat von [Gibt es einen .NET/C# -Wrapper für SQLite?] (Https://stackoverflow.com/questions/93654/is-there-a-net-c-wrapper-for-sqlite) – Flimzy