web-dev-qa-db-fra.com

Créer une base de données et une table SQLite

Dans le code d'application C #, je souhaite créer puis interagir avec une ou plusieurs bases de données SQLite.

Comment initialiser un nouveau fichier de base de données SQLite et l'ouvrir en lecture et en écriture?

Après la création de la base de données, comment puis-je exécuter une instruction DDL pour créer une table?

138
TinKerBell

Le lien suivant vous mènera à un excellent tutoriel, qui m'a beaucoup aidé!

Comment faire pour SQLITE en C #

J'ai presque utilisé tout cet article pour créer la base de données SQLite pour ma propre application C #.

N'oubliez pas de télécharger le fichier 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 à l'aide de la ligne suivante située au-dessus de votre classe:

using System.Data.SQLite;

Vous pouvez trouver les dll ici:

DLL SQLite

Vous pouvez trouver la manière de NuGet ici:

NuGet

La prochaine étape 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();

Une fois que vous avez créé un script de création en C #, je pense que vous voudrez peut-être ajouter des transactions de restauration, ce qui est plus sûr et évitera l’échec de votre base de données, car les données seront validées à la fin en un gros morceau comme une opération atomique du base de données et pas en petits morceaux, où il pourrait échouer à la 5ème des 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();
 }
268
Max