Qual è il modo migliore per connettersi e utilizzare un database SQLite da C#

StackOverflow https://stackoverflow.com/questions/26020

  •  09-06-2019
  •  | 
  •  

Domanda

L'ho già fatto in C++ includendo sqlite.h ma esiste un modo altrettanto semplice in C#?

È stato utile?

Soluzione

Provider ADO.NET 2.0 per SQLite ha oltre 200 download ogni giorno, quindi penso che tu sia sicuro usando quello.

Altri suggerimenti

Sto con, Bruce.Sto usando http://system.data.sqlite.org/ anche con grande successo.Ecco un semplice esempio di classe che ho creato:

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;
  }
}

C'è anche un Pacchetto NuGet:System.Data.SQLite disponibile.

Ho usato questo con grande successo:

http://system.data.sqlite.org/

Gratuito senza restrizioni.

(Nota dalla recensione:Il sito originale non esiste più.Il collegamento sopra ha un collegamento che punta al sito 404 e contiene tutte le informazioni dell'originale)

--Bruce

C'è un elenco di wrapper Sqlite per .Net all'indirizzo http://www.sqlite.org/cvstrac/wiki?p=SqliteWrappers.Da quello che ho sentito http://sqlite.phxsoftware.com/ è abbastanza buonoQuesto in particolare ti consente di accedere a Sqlite tramite ADO.Net proprio come qualsiasi altro database.

Ora c'è anche questa opzione: http://code.google.com/p/csharp-sqlite/ - un port completo di SQLite in C#.

https://github.com/praeclarum/sqlite-net ora è probabilmente l'opzione migliore.

Un altro modo di utilizzare il database SQLite in NET Framework è utilizzare Fluent-NHibernate.
[È un modulo NET che avvolge NHibernate (modulo ORM - Object Relational Mapping) e consente di configurare NHibernate a livello di codice (senza file XML) con il modello fluente.]

Ecco la breve descrizione "Per iniziare" su come eseguire questa operazione in C# passo dopo passo:

https://github.com/jagregory/fluent-nhibernate/wiki/Getting-started

Include un codice sorgente come progetto di Visual Studio.

Mono viene fornito con un involucro, usa il loro!

https://github.com/mono/mono/tree/master/mcs/class/Mono.Data.Sqlite/Mono.Data.Sqlite_2.0 fornisce il codice per avvolgere l'effettiva dll SQLite ( http://www.sqlite.org/sqlite-shell-win32-x86-3071300.zip trovato nella pagina di download http://www.sqlite.org/download.html/ ) in modo compatibile con .net.Funziona su Linux o Windows.

Questo sembra il più sottile di tutti i mondi, riducendo al minimo la tua dipendenza dalle librerie di terze parti.Se dovessi realizzare questo progetto da zero, lo farei in questo modo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top