J'ai déjà fait cela en C++ en incluant sqlite.h, mais existe-t-il un moyen aussi simple en C# ?
"Data Source=/path/to/file.db;New=False ;" si vous ne voulez pas perdre toutes vos données et tableaux à chaque fois .
J'ai déjà fait cela en C++ en incluant sqlite.h, mais existe-t-il un moyen aussi simple en C# ?
Je suis avec, Bruce. J'utilise http://system.data.sqlite.org/ avec un grand succès également. 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 existe également un Paquet NuGet : System.Data.SQLite disponible.
"Data Source=/path/to/file.db;New=False ;" si vous ne voulez pas perdre toutes vos données et tableaux à chaque fois .
Il ne fonctionne pas dans VS 2017. Il affiche l'erreur suivante : Unhandled Exception : System.BadImageFormatException : Impossible de charger le fichier ou l'assemblage 'System.Data.SQLite, Version=1.0.79.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139'. Une tentative a été faite pour charger un programme avec un format incorrect. at ConsoleApp1_del2.Program.Main(String[] args)
Microsoft.Data.Sqlite de Microsoft fait l'objet de plus de 9000 téléchargements par jour, je pense donc que vous pouvez l'utiliser en toute sécurité.
Exemple d'utilisation de la documentation :
using (var connection = new SqliteConnection("Data Source=hello.db"))
{
connection.Open();
var command = connection.CreateCommand();
command.CommandText =
@"
SELECT name
FROM user
WHERE id = $id
";
command.Parameters.AddWithValue("$id", id);
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
var name = reader.GetString(0);
Console.WriteLine($"Hello, {name}!");
}
}
}
Je l'ai utilisé avec beaucoup de succès :
http://system.data.sqlite.org/
Gratuit et sans restriction.
(Note de la revue : Le site original n'existe plus. Le lien ci-dessus a un lien pointant vers le site 404 et a toutes les informations de l'original)
--Bruce
Il existe une liste de wrappers Sqlite pour .Net à l'adresse suivante http://www.sqlite.org/cvstrac/wiki?p=SqliteWrappers . D'après ce que j'ai entendu http://sqlite.phxsoftware.com/ est assez bon. Celui-ci vous permet d'accéder à Sqlite via ADO.Net comme n'importe quelle autre base de données.
Il y a aussi maintenant cette option : http://code.google.com/p/csharp-sqlite/ - un portage complet de SQLite en C#.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
3 votes
Il s'agit d'un duplicata de cette question : stackoverflow.com/questions/93654/ et a une réponse différente.
0 votes
Duplicata possible de Existe-t-il un wrapper .NET/C# pour SQLite ?