2014-10-07 83 views
1

我在尝试调试Visual Studio 2012中的Windows窗体应用程序时遇到问题。当我构建并运行该程序时,它将在执行完代码段如下。它不会给我任何错误,或抛出任何异常。它只是死去,没有给我任何我可以用来找出什么是错的。SQLiteConnection.Open()终止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(); 
    } 
} 

任何人都知道怎么回事?

+2

“没有异常/错误”真的看起来......怀疑。 – user2864740 2014-10-07 20:59:50

+0

看起来你对我的回答不满意,我给你一个工作的例子,你的问题不是很好的结构,而且这意味着它的死亡。对于你在什么样的比赛中使用这种连接等等,我写了更好的设计,在这种设计中,如果连接是打开或关闭的,或者无论什么时候,你都不会进行检查。就像我说的,你不满意没有问题,我正在删除我的答案。祝你好运! – mybirthname 2014-10-07 21:39:37

+0

@mybirthname你听起来有点冒犯了。如果你是我很抱歉。我只是想澄清这个问题,并指出为什么你的答案不起作用,对于你或其他可能有**答案的人。你不应该因为这个原因而删除你的答案,即使这不是问题的实际答案。 – FireWingLead 2014-10-07 21:47:07

回答

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;

我希望能帮助别人。

相关问题