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;

        }