Следующая ссылка приведет вас к отличному учебнику, который мне очень помог!
Как SQLITE в C #
Я почти все использовал в этой статье, чтобы создать базу данных SQLite для моего собственного приложения на C #.
Не забудьте скачать SQLite.dll и добавить его в качестве ссылки на ваш проект. Это можно сделать с помощью NuGet и вручную добавив dll.
После того, как вы добавили ссылку, обратитесь к DLL из вашего кода, используя следующую строку в верхней части вашего класса:
using System.Data.SQLite;
Вы можете найти здесь dll:
SQLite DLL
Вы можете найти путь NuGet здесь:
NuGet
Далее идет сценарий создания. Создание файла базы данных:
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();
После того, как вы создали сценарий создания в C #, я думаю, что вы, возможно, захотите добавить транзакции отката, это безопаснее, и это предотвратит сбой вашей базы данных, потому что данные будут в конце зафиксированы в виде одной большой части как атомарной операции базы данных, а не мелкими кусочками, где он может потерпеть неудачу на 5-м из 10 запросов, например.
Пример использования транзакций:
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
не работает должным образом, оно будет выполняться каждый раз,ExecuteNonQuery
а не все вместе, какSQLiteTransaction
. Зачем использоватьTransactionScope
?SQLiteTransaction tr = m_dbConnection.BeginTransaction(); SQLiteCommand command = new SQLiteCommand(...); command.Transaction = tr;
использоватьTransactionScope