尝试在C#中查询SQLite3数据库时出错

时间:2012-04-01 10:08:04

标签: c# visual-studio-2010 sqlite

我正在尝试使用以下代码以编程方式访问SQLite 3数据库:

private void button1_Click(object sender, EventArgs e)
{
    try
    {

        string connectionPath = @"Data Source=C:\temp\sms.db";

        SQLiteConnection connection = new SQLiteConnection(connectionPath);

        SQLiteCommand command = connection.CreateCommand();
        connection.Open();
        string query = "SELECT * FROM Message";
        command.CommandText = query;
        command.ExecuteNonQuery();

        SQLiteDataAdapter dataAdaptor = new SQLiteDataAdapter(command);
        DataSet dataset = new DataSet();
        dataAdaptor.Fill(dataset, "messages");
        dataGridView1.DataSource = dataset.Tables["messages"];
        connection.Close();

    }

    catch
    {
        MessageBox.Show("error", "error", MessageBoxButtons.OK);
    }
}

然而,每当我按下此代码的按钮时,它都没有抓住Try Catch并显示我的消息框,它会冻结几秒钟并调试到程序中。 cs文件在下面显示的行

    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new frmMainWindow()); **<----This Line**
    }
}

然后在该行显示此错误

  

无法加载文件或程序集'System.Data.SQLite,Version = 1.0.76.0,Culture = neutral,   PublicKeyToken = db937bc2d44ff139'或其依赖项之一   试图加载格式不正确的程序。

如何克服此错误,以便查询数据库?

修改

我的开发操作系统是Win 7 x64教授 我安装了:
64位Windows(.NET Framework 4.0)的设置
32位Windows(.NET Framework 4.0)的设置
从这里system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki

2 个答案:

答案 0 :(得分:2)

你用的是什么?如果您使用的是x64系统,则必须使用SQL64的x64 dll

答案 1 :(得分:2)

由于某种原因,Visual Studio错误地引用了不同版本的System.Data.SQLite.dll

我删除了旧引用,并将新的System.Data.SQLite.dll文件复制到以下位置:

C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.0 \ Profile \ Client

然后再次使用Visual Studio添加对它的引用,它现在可以正常工作