Qual è il modo migliore per connettersi e utilizzare un database SQLite da C#
Domanda
L'ho già fatto in C++ includendo sqlite.h ma esiste un modo altrettanto semplice in C#?
Soluzione
Provider ADO.NET 2.0 per SQLite ha oltre 200 download ogni giorno, quindi penso che tu sia sicuro usando quello.
Altri suggerimenti
Sto con, Bruce.Sto usando http://system.data.sqlite.org/ anche con grande successo.Ecco un semplice esempio di classe che ho creato:
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;
}
}
C'è anche un Pacchetto NuGet:System.Data.SQLite disponibile.
Ho usato questo con grande successo:
http://system.data.sqlite.org/
Gratuito senza restrizioni.
(Nota dalla recensione:Il sito originale non esiste più.Il collegamento sopra ha un collegamento che punta al sito 404 e contiene tutte le informazioni dell'originale)
--Bruce
C'è un elenco di wrapper Sqlite per .Net all'indirizzo http://www.sqlite.org/cvstrac/wiki?p=SqliteWrappers.Da quello che ho sentito http://sqlite.phxsoftware.com/ è abbastanza buonoQuesto in particolare ti consente di accedere a Sqlite tramite ADO.Net proprio come qualsiasi altro database.
Ora c'è anche questa opzione: http://code.google.com/p/csharp-sqlite/ - un port completo di SQLite in C#.
https://github.com/praeclarum/sqlite-net ora è probabilmente l'opzione migliore.
Un altro modo di utilizzare il database SQLite in NET Framework è utilizzare Fluent-NHibernate.
[È un modulo NET che avvolge NHibernate (modulo ORM - Object Relational Mapping) e consente di configurare NHibernate a livello di codice (senza file XML) con il modello fluente.]
Ecco la breve descrizione "Per iniziare" su come eseguire questa operazione in C# passo dopo passo:
https://github.com/jagregory/fluent-nhibernate/wiki/Getting-started
Include un codice sorgente come progetto di Visual Studio.
Mono viene fornito con un involucro, usa il loro!
https://github.com/mono/mono/tree/master/mcs/class/Mono.Data.Sqlite/Mono.Data.Sqlite_2.0 fornisce il codice per avvolgere l'effettiva dll SQLite ( http://www.sqlite.org/sqlite-shell-win32-x86-3071300.zip trovato nella pagina di download http://www.sqlite.org/download.html/ ) in modo compatibile con .net.Funziona su Linux o Windows.
Questo sembra il più sottile di tutti i mondi, riducendo al minimo la tua dipendenza dalle librerie di terze parti.Se dovessi realizzare questo progetto da zero, lo farei in questo modo.