我正在尝试让SQLite在Visual Studio 2012中运行C#。 但是经过一系列教程之后,我仍然得到SQLite.Interop.dll的错误DllNotFoundException。
这是我收到的完整错误:
无法加载DLL'SQLite.Interop.dll':指定的路径是 无效。 (HRESULT异常:0x800700A1)
我已经为System.Data.SQLite.dll创建了一个引用。现在我发现我必须将SQLite.Interop.dll文件添加到我的项目文件夹中,但我仍然会收到此错误。
哦,顺便说一句,这是我的代码,如果有人有兴趣的话:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SQLite;
namespace SQLiteWinFormCS
{
public partial class Form1 : Form
{
private SQLiteConnection _sqlCon;
private SQLiteCommand _sqlCmd;
private SQLiteDataAdapter _db;
private DataSet _ds = new DataSet();
private DataTable _dt = new DataTable();
private string _dbPath = String.Empty;
public Form1()
{
InitializeComponent();
}
private void uiOpenDB_Click(object sender, EventArgs e)
{
Console(String.Format("You clicked {0}.", ((Button)sender).Name));
this._dbPath = uiDatabaseFilepath.Text;
Console("Filepath to DB = " + this._dbPath);
Console("Attempting to open DB connection...");
this._sqlCon = new SQLiteConnection(String.Format("Data Source={0};", @"\\Some-PC\ISC\Databases\testdbs\test.db3")); // << ERROR
Console("DB connection succesfull!");
}
private void Console(string text)
{
uiConsoleOutput.AppendText(text);
uiConsoleOutput.ScrollToCaret();
}
}
}
任何人都可以帮我解决这个问题吗?
提前致谢。
答案 0 :(得分:2)
将SQLite.Interop.dll文件复制到调试文件夹中。 例如“Projects \ sqlite test18 \ sqlite test18 \ bin \ Debug”将它放在这里。
并且不要将Interop添加为参考。
仅添加这些参考
这解决了我的问题。 我在x64操作系统下使用Sqlite x86。
答案 1 :(得分:1)
... DOHH
我可能使用了错误的System.Data.SQLite.dll。
对于任何有兴趣的人,您都可以找到我在此处下载的新.dll文件: http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki
我需要4.5 Framework(x86)的.dll;我点击了第一个下载链接。
另外我只使用System.Data.SQLite.dll,没有其他文件!
希望这个答案有助于其他人。 : - )