Я работаю над проектом, который до сегодняшнего дня был в порядке. Однако теперь, когда я запускаю его, и он проходит через несколько различных Stored Procedure
звонков он бросает InvalidOperationException
с сообщением The connection was not closed. The connection's current state is open.
SQL Connection Open Exception
Я понимаю, что я мог бы поставить в чеке, чтобы увидеть, если соединение уже открыто, но этот код hasn 't изменено (оно находится под Version Control
и не изменяется), поэтому я ищу другие потенциальные объяснения.
Может ли быть некоторая блокировка в SQL, которая не выпущена? Есть ли процесс, который я должен искать и убивать?
Я не могу опубликовать код, так как его много, и он разбит на более мелкие методы, что затрудняет извлечение отдельных элементов. Например:
public SqlConnection Connection
{
get
{
this._connection.Open();
return _connection;
}
}
public IDataReader RetrieveRecord(int Id)
{
//SP
SqlCommand cmd = this.Connection.CreateCommand();
cmd.CommandText = "SelectRecord";
cmd.CommandType = CommandType.StoredProcedure;
//Parameters
cmd.Parameters.Add(new SqlParameter("@tID", Id));
//instruct the data reader to close its connection when its Close method is called by passing the CommandBehavior.CloseConnection
return cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
Ничего массивно комплекс, я просто не понимаю, почему это соединение теперь бросает исключение.
вы открываете соединение в общедоступной функции SqlConnection Connection(), но никогда не закрываете программу. –