Создать базу данных SQLite и таблицу [закрыто]


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

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

после создания базы данных, как я могу выполнить DDL для создания таблиц?

1 105

1 ответ:

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

как SQLITE в C#

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

не забудьте скачать SQLite.DLL и добавить его в качестве ссылки на ваш проект. Это можно сделать с помощью NuGet и путем добавления DLL вручную.

после добавления ссылки, обратитесь к dll из вашего кода, используя следующую строку в верхней части вашего класса:

using System.Data.SQLite;

вы можете найти dll здесь:

SQLite DLL

вы можете найти NuGet way здесь:

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();

после того, как вы создали скрипт create в 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();
 }