Здравствуйте, Maxis, Вы писали:
M>Additional information: BeginTransaction requires an open and available Connection. The connection's current state is Open. M>По моему фраза сама себе противоречит.
На самом деле кроме Open в ConnectionState хранятся состояния Executing и Fetching, но наружу не показываюся. Available означает, что на соединении нет открытого DataReader и (при многопоточной работе) выполняющейся команды.
M>Почему такое может быть и как лечить?
Не открывать транзакции при открытом ридере. Либо открыть ее раньше, либо сделать несколько соединений.