Я пытаюсь использовать инструкцию Using()
с кодом SqlConnection
.Состояние связи закрыто при использовании объекта
Я сделал SqlConnection
страница свойство, как так ...
public SqlConnection baseConnection
{
get { return new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString); }
}
затем создал using()
оператор вроде так ...
using (baseConnection)
{
SqlCommand select = new SqlCommand("SELECT * FROM TABLE", baseConnection);
baseConnection.Open();
SqlDataReader reader = select.ExecuteReader();
//... other irrelevant code
}
Но при выполнении кода я получаю исключение
Сведения об исключении: System.InvalidOperationException: ExecuteReader требует открытого и ava ilable Connection. текущее состояние соединения с использованием закрыт
Я понимаю исключение, что я не понимаю, почему это соединение не открыто, когда я открыл ее baseConnection.Open()
?
Я использую это соединение по всему сайту, и я хотел бы поместить его в пользовательский базовый класс как свойство страницы, поэтому мне не нужно набирать его. Разве это не разрешено?
@Aniket: потому что baseConnection присоединен к SelectCommand не один, который получает открыл – jbl
Я не думаю, что это хорошая идея. вызов 'Dispose' в соединении не делает его« null ». поэтому это будет работать только один раз (тогда он будет создан) и не будет работать в остальное время. –
@jbl hmm, ........ –