DllNotFoundException for SQLite.Interop.dll (C# & SQLite
本文关键字:SQLite amp dll for Interop DllNotFoundException | 更新日期: 2023-09-27 18:24:32
我正试图让SQLite在Visual Studio 2012 for 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();
}
}
}
有人能帮我把这东西修好吗?
提前谢谢。
将SQLite.Interop.dll文件复制到调试文件夹中。例如"Projects''sqlite test18''sqlite test18''bin''Debug"将其放置在此处。
不要添加Interop作为参考。
仅添加这些参考
- System.Data.SQLite
- 系统数据.SQLite.EF6
- 系统数据.SQLite.EF6
这解决了我的问题。我使用的是x64操作系统下的Sqlite x86。
Dohh。。。
我可能使用了错误的System.Data.SQLite.dll。
对于任何感兴趣的人,你可以在这里找到我下载的新.dll文件:http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki
我需要用于4.5框架(x86)的.dll;我点击了第一个下载链接。
此外,我只使用System.Data.SQLite.dll,没有其他文件!
希望这个答案能帮助其他人。:-)