SQLite.Interop.dll的DllNotFoundException(C#& SQLite)

时间:2014-09-26 11:09:20

标签: c# sqlite visual-studio-2012

我正在尝试让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();
    }
}
}

任何人都可以帮我解决这个问题吗?

提前致谢。

2 个答案:

答案 0 :(得分:2)

将SQLite.Interop.dll文件复制到调试文件夹中。 例如“Projects \ sqlite test18 \ sqlite test18 \ bin \ Debug”将它放在这里。

并且不要将Interop添加为参考。

仅添加这些参考

  • System.Data.SQLite
  • System.Data.SQLite.EF6
  • System.Data.SQLite.EF6

这解决了我的问题。 我在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,没有其他文件!

希望这个答案有助于其他人。 : - )