CommandBehavior.SingleRow, в результате чего соединение с БД остается открытым? - PullRequest
3 голосов
/ 21 мая 2009

Недавно я работал над проектом в VB.NET и столкнулся с загадочной проблемой с некоторыми соединениями с БД. Это был проект, который я унаследовал от кого-то другого, и они использовали что-то вроде этого:

Dim reader As SqlDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection And CommandBehavior.SingleRow)
//after reading data
reader.Close()

Похоже, что из-за этого соединение не всегда закрывалось должным образом. Я удалил CommandBehavior.SingleRow, и теперь он работает нормально, но мне было интересно, сталкивался ли кто-нибудь еще с этим? Кто-нибудь знает, почему это не сработает? Я видел, как CommandBehaviors комбинируется таким образом, но это никогда раньше не вызывало этой проблемы.

1 Ответ

4 голосов
/ 11 октября 2009

При объединении флагов используйте оператор ИЛИ вместо И :

Dim reader As SqlDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection Or CommandBehavior.SingleRow)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...