57 votes

Quelle est la meilleure façon de se connecter et d'utiliser une base de données sqlite en C# ?

J'ai déjà fait cela en C++ en incluant sqlite.h, mais existe-t-il un moyen aussi simple en C# ?

3 votes

Il s'agit d'un duplicata de cette question : stackoverflow.com/questions/93654/ et a une réponse différente.

0 votes

82voto

DA. Points 301

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.

9 votes

"Data Source=/path/to/file.db;New=False ;" si vous ne voulez pas perdre toutes vos données et tableaux à chaque fois .

1 votes

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)

48voto

Espo Points 24318

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}!");
        }
    }
}

0 votes

Bonjour, est-il possible d'utiliser un mot de passe ?

12voto

bvanderw Points 589

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

6voto

robintw Points 7068

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.

5voto

xanadont Points 2723

Il y a aussi maintenant cette option : http://code.google.com/p/csharp-sqlite/ - un portage complet de SQLite en C#.

Prograide.com

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.

Powered by:

X