Создание базы данных и таблицы SQLite

В коде приложения С# я хотел бы создать и затем взаимодействовать с одной или несколькими базами данных SQLite.

Как инициализировать новый файл базы данных SQLite и открыть его для чтения и записи?

Как создать базу данных после создания базы данных после создания базы данных?

Ответ 1

Следующая ссылка приведет вас к отличному учебнику, который мне очень помог!

Как SQLITE в С#

В этой статье я почти все использовал для создания базы данных SQLite для своего собственного приложения на С#.

Не забудьте скачать 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();

После того, как вы создали сценарий создания в С#, я думаю, что вы, возможно, захотите добавить транзакции отката, это безопаснее, и это предотвратит сбой вашей базы данных, потому что данные будут в конце зафиксированы в виде одной большой части как атомарной операции для базы данных, а не в маленьких кусочках, где он может потерпеть неудачу на 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();
 }