public virtual DataSet ExecuteQuery(IDbCommand command, IDataConnection connection) { DataSet _datasetForStore = new DataSet(); IDbConnection conn = connection.GetConnection(); if (conn.State != ConnectionState.Open) conn.Open(); if (connection.IsTransactional) command.Transaction = connection.GetTransaction; command.Connection = conn; command.CommandTimeout = 10000; IDataAdapter adapter = connection.GetDataAdapter(command); try { FireEvent(command, connection); adapter.Fill(_datasetForStore); } catch (Exception e) { //throw new QueryException(e, command); throw e; } finally { if (!connection.IsTransactional) conn.Close(); } return _datasetForStore; }