“Não é possível encontrar sqlite3_open_v2 ponto de entrada na DLL sqlite3” ao usar System.Data.SQLite
-
21-08-2019 - |
Pergunta
Estou tendo problemas para se conectar a um banco de dados SQLite através System.Data.SQLite. Eu estava tentando usar FluentNHibernate mas que não funcionou, então eu fui voltar ao básico, mas tenho o mesmo erro:. Não é possível localizar ponto sqlite3_open_v2 entrada na DLL sqlite3
Este é meu código (bastante simples creio eu):
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();
}
}
Eu tenho uma referência para System.Data.SQLite assim tudo parece bem para mim. As poucas explicações (você mal pode chamá-los tutoriais) na internet não me ajudou.
Solução
Pode ser a versão do Sqlite3 você está trabalhando contra. Os métodos de V2 é relativamente novo - introduzida em v3.5
Outras dicas
Outra explicação possível é que você está usando uma versão do fornecedor de 32 bits em um aplicativo de 64 bits.
Eu apenas o download v1.0.60.0 no site da System.Data.SQLite (sqlite.phxsoftware.com/) que leva a http://sourceforge.net/project/showfiles.php?group_id=132486 . Como você pode ver que não há muita escolha, então eu não posso pensar que eu estou fazendo nada de errado lá. Se não me engano, Sqlite3 está incluído na System.Data.SQLite de modo que seria de esperar que seja a versão boa. Estou definitivamente trabalhando com a versão de 32 bits em um aplicativo de 32 bits. Eu fiz o download do instalador e vai tentar com isso (eu estava usando os binários).