¿Cuál es la mejor manera de conectarse y utilizar una base de datos sqlite desde C#?
Pregunta
He hecho esto antes en C++ al incluir sqlite.h, pero ¿existe una manera igualmente fácil en C#?
Solución
Proveedor ADO.NET 2.0 para SQLite tiene más de 200 descargas cada día, así que creo que estás seguro usándola.
Otros consejos
Estoy con Bruce.Estoy usando http://system.data.sqlite.org/ con gran éxito también.Aquí hay un ejemplo de clase simple que creé:
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;
}
}
También hay un Paquete NuGet:Sistema.Datos.SQLite disponible.
He usado esto con gran éxito:
http://system.data.sqlite.org/
Gratis sin restricciones.
(Nota de la revisión:El sitio original ya no existe.El enlace de arriba tiene un enlace que apunta al sitio 404 y tiene toda la información del original)
--Bruce
Hay una lista de contenedores Sqlite para .Net en http://www.sqlite.org/cvstrac/wiki?p=SqliteWrappers.Por lo que he oído http://sqlite.phxsoftware.com/ es bastante bueno.Este en particular te permite acceder a Sqlite a través de ADO.Net como cualquier otra base de datos.
Ahora también existe esta opción: http://code.google.com/p/csharp-sqlite/ - una adaptación completa de SQLite a C#.
https://github.com/praeclarum/sqlite-net Ahora es probablemente la mejor opción.
Otra forma de utilizar la base de datos SQLite en NET Framework es utilizar NHibernate fluido.
[Es el módulo NET que envuelve NHibernate (módulo ORM - Mapeo relacional de objetos) y permite configurar NHibernate mediante programación (sin archivos XML) con el patrón fluido.]
Aquí está la breve descripción de 'Cómo comenzar' sobre cómo hacer esto en C# paso a paso:
https://github.com/jagregory/fluent-nhibernate/wiki/Getting-started
Incluye un código fuente como proyecto de Visual Studio.
Mono viene con un envoltorio, ¡usa el de ellos!
https://github.com/mono/mono/tree/master/mcs/class/Mono.Data.Sqlite/Mono.Data.Sqlite_2.0 proporciona código para envolver el dll SQLite real ( http://www.sqlite.org/sqlite-shell-win32-x86-3071300.zip encontrado en la página de descarga http://www.sqlite.org/download.html/ ) de forma compatible con .net.Funciona en Linux o Windows.
Este parece el más sencillo de todos los mundos, ya que minimiza su dependencia de bibliotecas de terceros.Si tuviera que hacer este proyecto desde cero, esta es la forma en que lo haría.