2017-01-31 10 views
0

Я создал очень простую базу данных для проекта WPF. База данных LocalDB Database1.mdf является базой для Dataset1.xsd, которая была создана путем перетаскивания таблицы, которая мне нужна, из проводника сервера базы данных в Designer Dataset. В основном я имею дело с данными с переменными Dataset и адаптером базы данных без прямого открытия и закрытия фактического подключения к базе данных программно, кроме использования функций Update() и Fill() адаптера.Медленный/причудливый пересоединение LocalDB в проекте WPF после последующих запусков

Как правило, он хорошо работает во время исполнения, и он на 100% надежен для первого запуска программы. Во время выполнения программы нет проблем с ним. Во время закрытия программы нет очевидной проблемы, и сообщение адаптера .Connection.State.ToString() «Закрыто» перед закрытием и во время выполнения.

Однако, если я не дождался не менее 10-20 секунд после быстрого повторного запуска программного обеспечения в 2-3 раза, повторное открытие программы может зависнуть, и через несколько секунд отладочный отчет будет «Ошибка входа» во время первый Fill(). Почему это? Есть ли лимит сервера из-под моего контроля, или мне нужно закрыть соединения вручную?

ответ

0

Полу-ответ на мой собственный вопрос: Прекращение процесса LocalDB-сервера с системными командами при выходе (безопасно, после ожидания транзакций), похоже, несколько облегчает проблему.

Например, найти LocalDB экземпляры

> sqllocaldb i 
MSSQLLocalDB 
ProjectsV12 

Чтобы остановить релевантный безопасно (после запросов закончить)

> sqllocaldb stop MSSQLLocalDB 
LocalDB instance "MSSQLLocalDB" stopped. 

Сделайте то же самое в коде с классом Process

+0

PS. Я никогда не увижу никаких обновлений по этому поводу, поскольку с тех пор, как я перенесла это приложение в SQLite. –