“Не удается найти точку входа sqlite3_open_v2 в DLL sqlite3” при использовании System.Data.Sqlite
-
21-08-2019 - |
Вопрос
У меня возникли проблемы с подключением к базе данных Sqlite через System.Data.Sqlite.Я пытался использовать FluentNHibernate, но это не сработало, поэтому я вернулся к основам, но получил ту же ошибку:Не удается найти точку входа sqlite3_open_v2 в DLL sqlite3.
Это мой (довольно простой, я полагаю) код:
using (SQLiteConnection connection = new SQLiteConnection("Data Source=Stripper.s3db;Initial Catalog=main;"))
{
using (SQLiteCommand cmd = new SQLiteCommand("select * from album", connection))
{
cmd.Connection.Open();
object t = cmd.ExecuteScalar();
cmd.Connection.Close();
}
}
У меня есть ссылка на System.Data.SQLite, так что мне все кажется прекрасным.Несколько объяснений (едва ли их можно назвать учебными пособиями) в Интернете мне не помогли.
Решение
Это может быть версия Sqlite3, с которой вы работаете.Методы V2 являются относительно новыми - введено в версии v3.5
Другие советы
Другое возможное объяснение заключается в том, что вы используете 32-разрядную версию провайдера в 64-разрядном приложении.
Я только что скачал версию v1.0.60.0 с веб-сайта System.Data.Sqlite (sqlite.phxsoftware.com /), которая приводит к http://sourceforge.net/project/showfiles.php?group_id=132486.Как вы можете видеть, выбора особого нет, так что я не могу думать, что делаю здесь что-то не так.Если я не ошибаюсь, Sqlite3 включен в System.Data.Sqlite, поэтому можно было бы ожидать, что это будет хорошая версия.Я определенно работаю с 32-битной версией над 32-битным приложением.Я скачал установщик и попробую с этим (я использовал двоичные файлы).