Відповіді:
Наступне посилання приведе вас до чудового підручника, який мені дуже допоміг!
Я майже використав усе, що знаходиться в цій статті, щоб створити базу даних SQLite для власної програми C #.
Не забудьте завантажити SQLite.dll і додати його як посилання на ваш проект. Це можна зробити за допомогою NuGet і додавши dll вручну.
Після додавання посилання зверніться до dll зі свого коду, використовуючи наступний рядок у верхній частині класу:
using System.Data.SQLite;
Ви можете знайти DLL тут:
Ви можете знайти спосіб 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