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); } } }
//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); } }
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); } } }
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)); } } }
/// <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); }
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); } } } }
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); }
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); }