Quelle est la meilleure façon de se connecter et d'utiliser une base de données SQLite à partir de C#
Question
Je l'ai déjà fait en C++ en incluant sqlite.h mais existe-t-il un moyen tout aussi simple en C# ?
La solution
Fournisseur ADO.NET 2.0 pour SQLite a plus de 200 téléchargements chaque jour, donc je pense que vous pouvez utiliser celui-ci en toute sécurité.
Autres conseils
Je suis avec Bruce.J'utilise http://system.data.sqlite.org/ avec également beaucoup de succès.Voici un exemple de classe simple que j'ai créé :
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;
}
}
Il y a aussi un Forfait NuGet :Système.Data.SQLite disponible.
J'ai utilisé ceci avec beaucoup de succès :
http://system.data.sqlite.org/
Gratuit sans aucune restriction.
(Remarque de l'examen :Le site d'origine n'existe plus.Le lien ci-dessus a un lien pointant vers le site 404 et contient toutes les informations de l'original)
--Bruce
Il existe une liste de wrappers SQLite pour .Net à l'adresse http://www.sqlite.org/cvstrac/wiki?p=SqliteWrappers.D'après ce que j'ai entendu http://sqlite.phxsoftware.com/ c'est plutôt bien.Celui-ci vous permet d'accéder à SQLite via ADO.Net comme n'importe quelle autre base de données.
Il existe également désormais cette option : http://code.google.com/p/csharp-sqlite/ - un portage complet de SQLite vers C#.
https://github.com/praeclarum/sqlite-net est probablement maintenant la meilleure option.
Une autre façon d'utiliser la base de données SQLite dans NET Framework consiste à utiliser Courant-NHibernate.
[Il s'agit d'un module NET qui entoure NHibernate (module ORM - Object Relational Mapping) et permet de configurer NHibernate par programme (sans fichiers XML) avec le modèle fluide.]
Voici la brève description « Démarrage » sur la façon de procéder en C#, étape par étape :
https://github.com/jagregory/fluent-nhibernate/wiki/Getting-started
Il inclut un code source en tant que projet Visual Studio.
Mono est livré avec un emballage, utilisez le leur !
https://github.com/mono/mono/tree/master/mcs/class/Mono.Data.Sqlite/Mono.Data.Sqlite_2.0 donne du code pour envelopper la dll SQLite réelle ( http://www.sqlite.org/sqlite-shell-win32-x86-3071300.zip trouvé sur la page de téléchargement http://www.sqlite.org/download.html/ ) d'une manière conviviale .net.Cela fonctionne sous Linux ou Windows.
Cela semble le plus mince de tous les mondes, minimisant votre dépendance à l'égard des bibliothèques tierces.Si je devais réaliser ce projet à partir de zéro, c'est comme ça que je le ferais.