Le lien suivant vous amènera à un excellent tutoriel, qui m'a beaucoup aidé!
Comment SQLITE en C #
J'ai presque tout utilisé dans cet article pour créer la base de données SQLite pour ma propre application C #.
N'oubliez pas de télécharger le SQLite.dll et de l'ajouter comme référence à votre projet. Cela peut être fait en utilisant NuGet et en ajoutant la dll manuellement.
Après avoir ajouté la référence, reportez-vous à la dll de votre code en utilisant la ligne suivante en haut de votre classe:
using System.Data.SQLite;
Vous pouvez trouver les dll ici:
DLL SQLite
Vous pouvez trouver la méthode NuGet ici:
NuGet
Le prochain est le script de création. Création d'un fichier de base de données:
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();
Après avoir créé un script de création en C #, je pense que vous voudrez peut-être ajouter des transactions d'annulation, c'est plus sûr et cela empêchera votre base de données d'échouer, car les données seront validées à la fin en un seul gros morceau comme une opération atomique au base de données et pas en petits morceaux, où il pourrait échouer à 5e sur 10 requêtes par exemple.
Exemple d'utilisation des transactions:
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.Transactions.TransactionScope
ne fonctionne pas comme prévu, elle s'exécuteraExecuteNonQuery
immédiatement et pas toutes ensemble, commeSQLiteTransaction
. Pourquoi utiliserTransactionScope
?SQLiteTransaction tr = m_dbConnection.BeginTransaction(); SQLiteCommand command = new SQLiteCommand(...); command.Transaction = tr;
plutôt que d'utiliserTransactionScope