Мне не очень понятен этикет для ответов на старые вопросы, и я не мог понять, как комментировать другой ответ (я новичок в SO, и я не совсем выпил свою первую чашку кофе сегодня, так что сделай мне немного расслабиться =]).
Я всегда пишу свои DAL для открытия / закрытия соединений с каждым запросом и позволяю пулу соединений драйвера выполнять работу по управлению соединениями.
Тем не менее, у меня есть многопользовательское настольное приложение, которое использует общую базу данных MS Access (SQL Express практически не использовался, когда создавалось это приложение), и я иногда видел ошибки, указывающие на повреждение. В этой статье MS рекомендуется использовать только одно соединение для всего приложения:
"Повторное открытие и закрытие базы данных Microsoft Access не рекомендуется. Откройте базу данных один раз в начале приложения, а затем закройте базу данных в конце приложения."
Мое приложение является многопоточным, поэтому я полагаю, что мне придется пересмотреть рекомендацию "открыть одно соединение в THREAD", чтобы избежать коллизий. У кого-нибудь есть опыт использования баз данных общего доступа с OLEDB и подобных проблем с повреждением?