Qual é a melhor maneira de conectar e usar um banco de dados sqlite de C#
Pergunta
Já fiz isso antes em C++ incluindo sqlite.h, mas existe uma maneira igualmente fácil em C#?
Solução
Provedor ADO.NET 2.0 para SQLite tem mais de 200 downloads todos os dias, então acho que você está seguro ao usá-lo.
Outras dicas
Estou com Bruce.Estou usando http://system.data.sqlite.org/ também com grande sucesso.Aqui está um exemplo de classe simples que criei:
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;
}
}
Há também um Pacote NuGet:Sistema.Data.SQLite disponível.
Eu usei isso com grande sucesso:
http://system.data.sqlite.org/
Gratuito sem restrições.
(Nota da revisão:O site original não existe mais.O link acima tem um link apontando para o site 404 e contém todas as informações do original)
--Bruce
Há uma lista de wrappers Sqlite para .Net em http://www.sqlite.org/cvstrac/wiki?p=SqliteWrappers.Pelo que ouvi http://sqlite.phxsoftware.com/ é muito bom.Este em particular permite acessar o Sqlite através do ADO.Net como qualquer outro banco de dados.
Agora também existe esta opção: http://code.google.com/p/csharp-sqlite/ - uma porta completa de SQLite para C#.
https://github.com/praeclarum/sqlite-net agora é provavelmente a melhor opção.
Outra maneira de usar o banco de dados SQLite no NET Framework é usar Fluente-NHibernate.
[É um módulo NET que envolve o NHibernate (módulo ORM - Object Relational Mapping) e permite configurar o NHibernate programaticamente (sem arquivos XML) com o padrão fluente.]
Aqui está uma breve descrição de 'Primeiros passos' de como fazer isso em C# passo a passo:
https://github.com/jagregory/fluent-nhibernate/wiki/Getting-started
Inclui um código-fonte como um projeto do Visual Studio.
Mono vem com embalagem, use a deles!
https://github.com/mono/mono/tree/master/mcs/class/Mono.Data.Sqlite/Mono.Data.Sqlite_2.0 fornece código para agrupar a dll SQLite real ( http://www.sqlite.org/sqlite-shell-win32-x86-3071300.zip encontrado na página de download http://www.sqlite.org/download.html/ ) de uma forma amigável para .net.Funciona em Linux ou Windows.
Este parece o mais fino de todos os mundos, minimizando sua dependência de bibliotecas de terceiros.Se eu tivesse que fazer esse projeto do zero, seria assim que eu faria.