SQLiteConnection.Open()终止Windows窗体应用程序而不抛出异常

时间:2014-10-07 20:55:18

标签: c# winforms sqlite

我在尝试在Visual Studio 2012中调试Windows窗体应用程序时遇到问题。当我构建并运行该程序时,它会在执行下面代码段中指示的行时退出。它没有给我任何类型的错误,或抛出任何类型的异常。它只是死了并结束而没有给我任何我可以用来找出错误的东西。

这是我在单步执行程序时发生的类:

public class DBAdapter
{
    protected static SQLiteConnection dbConnection = null;

    protected static void initConnection() {
        dbConnection = new SQLiteConnection(ConfigurationManager.ConnectionStrings["LocalData"].ConnectionString);
    }

    protected static void openConnection() {
        if (dbConnection == null)
            initConnection();
        if (dbConnection.State == ConnectionState.Broken)
            closeConnection();
        else if (dbConnection.State == ConnectionState.Open)
            return;
        dbConnection.Open();//<-- Here is where it dies
    }

    protected static void closeConnection() {
        if (dbConnection.State == ConnectionState.Closed)
            return;
        dbConnection.Close();
    }
}

任何人都知道发生了什么事?

1 个答案:

答案 0 :(得分:0)

我似乎已经让这个工作,并且由于没有人提供关于它为什么不起作用的确定答案,我将发布我最好的猜测,为了包装它并希望提供一个提示其他有这个问题的人。 (也参见对问题的评论)

我并不是100%肯定这就是它所做的,因为它不是项目开始工作时唯一改变的东西,但我从评论和评论中得到了Blorgbeard的建议。更改了连接字符串:

data source="C:\Users\PerrinL\AppData\Local\CardShark\CardShark.PCShark\1.0.0.0\Data\‌​LocalCardData.db"

成了

Data Source=C:\Users\PerrinL\AppData\Local\CardShark\CardShark.PCShark\1.0.0.0\Data\‌‌LocalCardData.db; Version=3

data source添加上限,从文件路径中移除引号并在其后添加;,并添加Version=3;

我希望能帮助别人。