Der nächste Link bringt Sie zu einem großartigen Tutorial, das mir sehr geholfen hat!
SQLITE in C #
Ich habe fast alles in diesem Artikel verwendet, um die SQLite-Datenbank für meine eigene C # -Anwendung zu erstellen.
Vergessen Sie nicht, die Datei SQLite.dll herunterzuladen und als Referenz zu Ihrem Projekt hinzuzufügen. Dies kann mit NuGet und durch manuelles Hinzufügen der DLL erfolgen.
Nachdem Sie die Referenz hinzugefügt haben, verweisen Sie in der folgenden Zeile über Ihrer Klasse auf die DLL aus Ihrem Code:
using System.Data.SQLite;
Die DLLs finden Sie hier:
SQLite-DLLs
Den NuGet-Weg finden Sie hier:
NuGet
Als nächstes folgt das Erstellungsskript. Erstellen einer Datenbankdatei:
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();
Nachdem Sie ein Erstellungsskript in C # erstellt haben, möchten Sie möglicherweise Rollback-Transaktionen hinzufügen. Dies ist sicherer und verhindert, dass Ihre Datenbank ausfällt, da die Daten am Ende in einem großen Teil als atomare Operation für die Datei festgeschrieben werden Datenbank und nicht in kleinen Stücken, wo es zum Beispiel bei 5. von 10 Abfragen fehlschlagen könnte.
Beispiel für die Verwendung von Transaktionen:
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
funktioniert die Verwendung nicht wie erwartet, sondern wirdExecuteNonQuery
sofort ausgeführt und nicht alle zusammenSQLiteTransaction
. Warum verwendenTransactionScope
?SQLiteTransaction tr = m_dbConnection.BeginTransaction(); SQLiteCommand command = new SQLiteCommand(...); command.Transaction = tr;
die Verwendung vonTransactionScope