“Impossibile trovare il punto di ingresso sqlite3_open_v2 nella DLL sqlite3” quando si usa System.Data.Sqlite
-
21-08-2019 - |
Domanda
Sto avendo problemi di connessione a un database SQLite attraverso System.Data.Sqlite. Stavo cercando di utilizzare FluentNhibernate, ma che non ha funzionato, così sono tornato alle origini ma ho ottenuto lo stesso errore. Impossibile trovare punto di ingresso sqlite3_open_v2 in DLL sqlite3
Questa è la mia (abbastanza semplice credo) codice:
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();
}
}
Ho un riferimento a System.Data.SQLite quindi tutto sembra che vada bene per me. Le poche spiegazioni (si può a malapena chiamarli tutorial) su internet non mi hanno aiutato.
Soluzione
Può essere la versione di Sqlite3 si sta lavorando contro. I metodi V2 sono relativamente nuovi - introdotto nel v3.5
Altri suggerimenti
Un'altra possibile spiegazione è che si sta utilizzando una versione a 32 bit del provider in un'applicazione a 64 bit.
Ho appena scaricato dal sito web v1.0.60.0 System.Data.Sqlite (sqlite.phxsoftware.com/) che porta a http://sourceforge.net/project/showfiles.php?group_id=132486 . Come si può vedere, non c'è molta scelta, quindi non riesco a pensare che sto facendo qualcosa di sbagliato c'è. Se non mi sbaglio, Sqlite3 è incluso nel System.Data.Sqlite così ci si aspetterebbe che fosse la versione buona. Sono sicuramente lavorando con la versione a 32 bit su un'applicazione a 32 bit. Ho scaricato il programma di installazione e cercherò con quella (stavo usando i binari).