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

C# 尝试在C中查询SQLite3数据库时出错#,c#,visual-studio-2010,sqlite,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);

我正在尝试使用以下代码以编程方式访问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
并显示我的消息框,它会冻结几秒钟,并在下面显示的行处调试到Program.cs文件中

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

Application.Run(new frmMainWindow());***您使用的是什么dll?如果您在x64系统中,您必须使用SQLite的x64 dll

您使用的是什么dll?如果您在x64系统中,您必须使用SQLite的x64 dll

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

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

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


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

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

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

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


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

听起来像是32-/64位不匹配。您的开发操作系统是64位的吗?如果是这样的话:您安装了两个版本的SQLite吗?棘手的部分是:由于Visual Studio是32位的,所以在内部VS运行时需要32位版本。如果在外部VS运行,则通过de获得64位版本错误(除非您仅为“x86”显式编译)听起来像是32-/64位不匹配。您的开发操作系统是64位的吗?如果是这样:您安装了两个版本的SQLite吗?棘手的部分是:由于Visual Studio是32位的,所以在运行内部VS时需要32位版本。如果在运行外部VS,则默认情况下获得64位版本(除非您仅为“x86”明确编译)