コード例 #1
0
ファイル: Util.cs プロジェクト: tomhibbers/un-locode
        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
        //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);
        }
コード例 #3
0
        public static IEnumerable <IDataRecord> ToEnumerable(this IDataReader reader)
        {
            var e = new DbEnumerator(reader);

            while (e.MoveNext())
            {
                yield return((IDataRecord)e.Current);
            }
        }
コード例 #4
0
ファイル: DataTable.cs プロジェクト: kouweizhong/Mannex
 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);
         }
     }
 }
コード例 #5
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));
         }
     }
 }
コード例 #6
0
        /// <summary>
        /// Advances the enumerator to the
        /// next element in the collection.
        /// </summary>
        public bool MoveNext()
        {
            Precondition.Require(!_disposed, () =>
                                 Error.ObjectDisposed("enumerator"));

            _current = null;
            if (_enumerator.MoveNext())
            {
                _current = new DbDataRecord((IDataRecord)_enumerator.Current, _lookup);
                return(true);
            }
            return(false);
        }
コード例 #7
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);
             }
         }
     }
 }
コード例 #8
0
ファイル: Mail.cs プロジェクト: ArsenShnurkov/beagle-1
        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);
        }
コード例 #9
0
ファイル: Contact.cs プロジェクト: ArsenShnurkov/beagle-1
        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);
        }