c# - sqliteconnection - xamarin sqlite linq



Crea database SQLite e tabella (1)

All'interno del codice dell'applicazione C #, vorrei creare e quindi interagire con uno o più database SQLite.

Qual è il metodo preferito per inizializzare un nuovo file di database SQLite e aprirlo per leggere e scrivere?

Dopo la creazione del database, come posso eseguire un'istruzione DDL per creare una tabella?


Il prossimo link ti porterà ad un fantastico tutorial, che mi ha aiutato molto!

Come SQLITE in C #

Ho quasi usato tutto in quell'articolo per creare il database SQLite per la mia applicazione C #.

Non dimenticare di scaricare SQLite.dll e aggiungerlo come riferimento al tuo progetto. Questo può essere fatto usando NuGet e aggiungendo la DLL manualmente.

Dopo aver aggiunto il riferimento, fare riferimento alla DLL dal codice utilizzando la seguente riga in cima alla classe:

using System.Data.SQLite;

Puoi trovare la dll qui:

DLL SQLite

Puoi trovare il modo NuGet qui:

NuGet

Il prossimo è lo script di creazione. Creazione di un file di database:

SQLiteConnection.CreateFile("MyDatabase.sqlite");

SQLiteConnection m_dbConnection = new SQLiteConnection("Data Source=MyDatabase.sqlite;Version=3;");
m_dbConnection.Open();

string sql = "create table highscores (name varchar(20), score int)";

SQLiteCommand command = new SQLiteCommand(sql, m_dbConnection);
command.ExecuteNonQuery();

sql = "insert into highscores (name, score) values ('Me', 9001)";

command = new SQLiteCommand(sql, m_dbConnection);
command.ExecuteNonQuery();

m_dbConnection.Close();

Dopo aver creato uno script di creazione in C #, penso che potresti voler aggiungere transazioni di rollback, è più sicuro e manterrà il tuo database non funzionante, perché i dati saranno impegnati alla fine in un'unica grande operazione come operazione atomica database e non in piccoli pezzi, dove potrebbe fallire in quinto di 10 query per esempio.

Esempio su come utilizzare le transazioni:

 using (TransactionScope tran = new TransactionScope())
 {
     //Insert create script here.

     //Indicates that creating the SQLiteDatabase went succesfully, so the database can be committed.
     tran.Complete();
 }




system.data.sqlite