Я получаю «Ошибка SQLite 14:« Невозможно открыть файл базы данных »». - PullRequest
1 голос
/ 27 мая 2020

Я пишу веб-API ASP. NET на. NET Framework 4.7.2. Я хотел бы иметь базу данных SQLite в файле на моем жестком диске. Затем я мог получить доступ к базе данных с помощью SqliteConnection.

В моем коде я вызываю var db = new SqliteConnection("Data Source=testDB.sqlite");, чтобы создать SqliteConnection. Затем я звоню db.Open();. Эта функция генерирует исключение Microsoft.Data.Sqlite.SqliteException, содержащее ошибку «Ошибка SQLite 14:« невозможно открыть файл базы данных ».

Я пытался создать файл testDB.sqlite вручную, но не смог уверен, где его поставить. Я не прошу SqliteConnection создавать какие-либо каталоги. Я не пишу приложение UWP (потому что ASP. NET отличается от UWP, верно?). Я пробовал как относительный, так и абсолютный путь. Я даже удалил весь проект и использовал мастер создания проектов Visual Studio для его регенерации. Я не знаю, что еще попробовать.

Я создал минимальный воспроизводимый пример здесь . Вы сможете просто вставить это прямо в Visual Studio. Помимо сантехники, пример буквально состоит из двух строк. Есть ли у кого-нибудь идеи, что я делаю не так?

1 Ответ

0 голосов
/ 27 мая 2020

Для вашего проекта попробуйте установить зависимость: Microsoft.EntityFrameworkCore.Sqlite и исправьте строку подключения в своем коде следующим образом:

var db = new SqliteConnection("Data Source=file:testDB.sqllite;Mode=ReadWrite;");
db.Open();

Microsoft.Data.Sqlite использует имя файла в источнике данных как URI: https://www.sqlite.org/c3ref/open.html#urifilenamesinsqlite3open

Я создал базу данных sqllite с помощью SQLliteStudio: https://github.com/pawelsalawa/sqlitestudio/releases

Добавил testDB.sqllite в проект и установил свойство «Копировать в выходной каталог. ":" Копировать, если новее ".

После этих шагов« Открыть »сработало успешно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...