public DataSetEnumerator(DataSet dataSet, string tableName = null)
        {
            if (dataSet == null)
            {
                throw new ArgumentNullException(nameof(dataSet), ArgumentHelper.NullParamMessage);
            }
            if (dataSet.Tables.Count == 0)
            {
                throw new InvalidOperationException("DataSet does not contain any table");
            }

            DataTable dataTable;

            if (!string.IsNullOrWhiteSpace(tableName))
            {
                dataTable = dataSet.Tables[tableName];
                if (dataTable == null)
                {
                    throw new InvalidOperationException($"DataSet does not contain table with name \"{tableName}\"");
                }
            }
            else
            {
                dataTable = dataSet.Tables[0];
            }

            _dataTableEnumerator = new DataTableEnumerator(dataTable);
        }
        public DataReaderEnumerator(IDataReader dataReader)
        {
            if (dataReader == null)
            {
                throw new ArgumentNullException(nameof(dataReader), ArgumentHelper.NullParamMessage);
            }

            var dataTable = new DataTable();

            dataTable.Load(dataReader);
            dataReader.Dispose();
            _dataTableEnumerator = new DataTableEnumerator(dataTable);
        }