Пример #1
0
        public static IEnumerable <Code> ParseUnlocodecsv(StreamReader reader)
        {
            using (var csv = new CachedCsvReader(reader, hasHeaders: true))
            {
                var e = new DbEnumerator(csv);
                while (e.MoveNext())
                {
                    if (e.Current == null)
                    {
                        continue;
                    }
                    var record = (IDataRecord)e.Current;

                    if (record.FieldCount == 0)
                    {
                        continue;
                    }
                    var code = new Code()
                    {
                        Country          = (string)record.GetValue(1),
                        Location         = (string)record.GetValue(2),
                        Name             = (string)record.GetValue(3),
                        NameWoDiacritics = (string)record.GetValue(4),
                    };
                    yield return(code);
                }
            }
        }
Пример #2
0
        public override IEnumerator GetEnumerator()
        {
            // Not calling EnsureInitialized() here. It will be called when the DbEnumerator is used
            IEnumerator result = new DbEnumerator(this, closeReader: true);

            return(result);
        }
Пример #3
0
        //Este metodo sirve para realizar una consulta en la base de datos y resive como parametros un DbCommand
        //con el cual se realiza la consulta, y los siguientes parametros son opcionales lo que significa que si al invocar el
        //metodo no usan esos parametros estos toman el valor con el que se estan igualando en la declaración del metodo
        //ejemplo DbConnection = null, si no se pasa por parametro un valor este toma el valor null.
        //Este metodo devuelve una lista de DbDataRecord, estos contienen un array de valores de una fila del resultado
        //de la consulta llevando como identificador de cada espacio del array el nombre de la columna del SELECT de la consulta
        public static List <DbDataRecord> EjecutarConsulta(DbCommand dbCommand, DbConnection connection = null, int intMax = -1)
        {
            var lstDbDataRecord = new List <DbDataRecord>();

            using (var dbConnection = connection == null ? Provider.GetDbConnection(StringConnection) : connection)
            {
                dbCommand.Connection = dbConnection;
                if (dbCommand.Connection.State == ConnectionState.Closed)
                {
                    dbCommand.Connection.Open();
                }
                using (var dbDataReader = dbCommand.ExecuteReader(CommandBehavior.CloseConnection))
                {
                    DbEnumerator dbEnumerator = (DbEnumerator)dbDataReader.GetEnumerator();
                    var          intCount     = 0;
                    while ((intMax == -1 || intCount < intMax) && dbEnumerator.MoveNext())
                    {
                        lstDbDataRecord.Add((DbDataRecord)dbEnumerator.Current);
                        intCount++;
                    }
                }
                dbCommand.Dispose();
            }
            return(lstDbDataRecord);
        }
        public static IEnumerable <IDataRecord> ToEnumerable(this IDataReader reader)
        {
            var e = new DbEnumerator(reader);

            while (e.MoveNext())
            {
                yield return((IDataRecord)e.Current);
            }
        }
Пример #5
0
        /// <summary>
        /// Initializes a new instance of the
        /// <see cref="DbDataRecordEnumerator"/> class.
        /// </summary>
        /// <param name="reader">The data reader instance, containing
        /// the result set.</param>
        /// <param name="lookup">The column name lookup dictionary.</param>
        public DbDataRecordEnumerator(IDbDataReader reader,
                                      DbFieldLookup lookup)
        {
            Precondition.Require(reader, () => Error.ArgumentNull("reader"));
            Precondition.Require(lookup, () => Error.ArgumentNull("lookup"));

            _reader     = reader;
            _lookup     = lookup;
            _enumerator = new DbEnumerator(_reader, false);
        }
Пример #6
0
 static IEnumerable <IDataRecord> GetRecordsImpl(DataTable table)
 {
     using (var reader = new DataTableReader(table))
     {
         var e = new DbEnumerator(reader);
         while (e.MoveNext())
         {
             yield return((IDataRecord)e.Current);
         }
     }
 }
Пример #7
0
 static IEnumerator <T> SelectImpl <T>(IDataReader reader, Func <IDataRecord, T> selector)
 {
     using (reader)
     {
         var e = new DbEnumerator(reader, true);
         while (e.MoveNext())
         {
             yield return(selector((IDataRecord)e.Current));
         }
     }
 }
Пример #8
0
 private void Dispose(bool disposing)
 {
     if (disposing)
     {
         IDisposable disp = (_enumerator as IDisposable);
         if (disp != null)
         {
             disp.Dispose();
         }
     }
     _enumerator = null;
     _disposed   = true;
 }
Пример #9
0
 public IEnumerable <IDataRecord> QuerySql(string commandText)
 {
     using (var command = connection.CreateCommand()) {
         command.CommandText = commandText;
         using (var reader = command.ExecuteReader()) {
             var enumerator = new DbEnumerator(reader, true);
             while (enumerator.MoveNext())
             {
                 yield return(enumerator.Current as IDataRecord);
             }
         }
     }
 }
Пример #10
0
        public override bool HasNextIndexable()
        {
            do
            {
                while (DbEnumerator == null || !DbEnumerator.MoveNext())
                {
                    Done = true;
                    indexer.NotificationEvent -= OnNotification;
                    indexer.ChildComplete();
                    return(false);
                }
            } while (IsUpToDate((DbEnumerator.Current as TB.Mail).Uri));

            return(true);
        }
Пример #11
0
        public override bool HasNextIndexable()
        {
            do
            {
                if (DbEnumerator == null || !DbEnumerator.MoveNext())
                {
                    Done = true;
                    indexer.NotificationEvent -= OnNotification;
                    indexer.ChildComplete();
                    return(false);
                }
            } while ((DbEnumerator.Current as TB.Contact).GetString("table") != "BF" ||
                     IsUpToDate((DbEnumerator.Current as TB.Contact).Uri));

            return(true);
        }
Пример #12
0
        /// <summary>
        /// List
        /// </summary>
        public void List()
        {
            this.codeTypeList = new List <CodeType>();
            IEnumerator list = null;

            try
            {
                using (var connection = new SqlConnection(ConnString.ConnectionString))
                {
                    var commandString = string.Format(
                        " SELECT  " +
                        "  [CodeType] " +
                        " ,[Description] " +
                        "   FROM [CodeType] ");

                    using (var command = new SqlCommand(
                               commandString, connection))
                    {
                        connection.Open();
                        using (SqlDataReader reader = command.ExecuteReader())
                        {
                            list = new DbEnumerator(reader);

                            while (reader.Read())
                            {
                                CodeType _codeType = new CodeType();
                                _codeType.Code        = reader["CodeType"].ToString();
                                _codeType.Description = reader["Description"].ToString();

                                this.codeTypeList.Add(_codeType);
                            }
                        }
                    }
                }
            }
            catch (Exception)
            {
            }
        }
            internal Enumerator(XmlaDataReader dataReader)
            {
                bool closeReader = (CommandBehavior.CloseConnection & dataReader.commandBehavior) != CommandBehavior.Default;

                this.enumerator = new DbEnumerator(dataReader, closeReader);
            }
        override public IEnumerator GetEnumerator()
        {
            IEnumerator result = new DbEnumerator((IDataReader)this, true); // We always want to close the reader;

            return(result);
        }