Я столкнулся с ошибкой при получении чего-то из базы данных Oracle.OracleDataReader. Ошибка: неверная операция. Соединение закрыто
Вот мой код:
public virtual IDataReader LoadDataReaderWithSqlString(string strQuery, ISessionScope session)
{
var s = GetSession(session);
using (var connection = s.Connection)
{
var command = connection.CreateCommand();
command.Connection = connection;
if (connection.State == ConnectionState.Closed || connection.State == ConnectionState.Broken)
connection.Open();
command.CommandType = CommandType.Text;
command.CommandText = s.CreateSQLQuery(strQuery).ToString();
s.Transaction.Enlist(command); // Set the command to exeute using the NHibernate's transaction
using (var dataReader = command.ExecuteReader())
{
if(dataReader.Read())
return dataReader;
}
}
return null;
}
Когда я отладки, я был в состоянии видеть возвращаемое значение в DataReader. Я использую NHibernate для запуска Raw SQL. Я хочу вернуть DataReader. Кто-нибудь может мне помочь?
Может быть, обернуть все в попытке поймать? –
@DavidMerinos Да, это может быть вариант. Благодаря! – Tony
Также вторая строка в этом, вероятно, избыточна: var command = connection.CreateCommand(); command.Connection = соединение; – Kakira