2014-10-07 13 views
1

У меня возникла проблема при попытке отладки приложения форм Windows в Visual Studio 2012. Когда я создаю и запускаю программу, она завершает выполнение строки, указанной в ниже. Это не дает мне никакой ошибки или бросает какие-то исключения. Он просто умирает и кончается, не давая мне НИЧЕГО, я могу использовать, чтобы узнать, что случилось.SQLiteConnection.Open() завершает работу приложения Windows Forms без исключения бросания

Вот класс, в котором это происходит, когда я пошагово выполнения программы:

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

+0

Похоже, вы недовольны моим ответом, я даю вам рабочий пример, ваш вопрос не очень хорошо структурирован, а также то, что это означает, что он умирает. Для чего вы используете это соединение в каком конкурсе и т. Д. ... Я написал вам лучший дизайн, в котором вы не делаете проверки, если соединение открыто или закрыто или что-то еще. Как я уже сказал, вы не удовлетворены проблемой, я удаляю свой ответ. Удачи вам в вашей проблеме! – mybirthname

+0

@mybirthname Вы, похоже, оскорблены. Извините, если вы были. Я просто пытался уточнить этот вопрос и указать, почему ваш ответ не работает, для вас или других, у которых может быть ** ответ. Вы не должны были удалить свой ответ по этой причине, даже если это не был реальный ответ на вопрос. – FireWingLead

ответ

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;

Я надеюсь, что это поможет кому-то.

Смежные вопросы