public void Postprocess(DbDataReader reader, IList<Exception> exceptions) { reader.Read(); var values = reader.GetFieldValue<int[]>(0); applyDataFromSproc(values); }
private LogEntry ReadEntry(DbDataReader dataReader) { var entry = new LogEntry(); int idOrd = dataReader.GetOrdinal("ID"); entry.ID = dataReader.GetFieldValue<int>(idOrd); int applicationOrd = dataReader.GetOrdinal("Application"); entry.Application = dataReader.IsDBNull(applicationOrd) ? null : dataReader.GetFieldValue<string>(applicationOrd); int machineOrd = dataReader.GetOrdinal("MachineName"); entry.MachineName = dataReader.IsDBNull(machineOrd) ? null : dataReader.GetFieldValue<string>(machineOrd); int timestampOrd = dataReader.GetOrdinal("TimeStamp"); entry.TimeStamp = dataReader.GetFieldValue<DateTime>(timestampOrd); int threadOrd = dataReader.GetOrdinal("Thread"); entry.Thread = dataReader.IsDBNull(threadOrd) ? null : dataReader.GetFieldValue<string>(threadOrd); int levelOrd = dataReader.GetOrdinal("Level"); entry.Level = dataReader.IsDBNull(levelOrd) ? null : dataReader.GetFieldValue<string>(levelOrd); int loggerOrd = dataReader.GetOrdinal("Logger"); entry.Logger = dataReader.IsDBNull(loggerOrd) ? null : dataReader.GetFieldValue<string>(loggerOrd); int messageOrd = dataReader.GetOrdinal("Message"); entry.Message = dataReader.IsDBNull(messageOrd) ? null : dataReader.GetFieldValue<string>(messageOrd); int exceptionOrd = dataReader.GetOrdinal("Exception"); entry.Exception = dataReader.IsDBNull(exceptionOrd) ? null : dataReader.GetFieldValue<string>(exceptionOrd); int ntUserOrd = dataReader.GetOrdinal("NTUser"); entry.NTUser = dataReader.IsDBNull(ntUserOrd) ? null : dataReader.GetFieldValue<string>(ntUserOrd); return entry; }
/// <summary> /// 获取指定名字的列 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="reader"></param> /// <param name="key"></param> /// <returns></returns> public static T Get <T>(this System.Data.Common.DbDataReader reader, string key) { var ordinal = reader.GetOrdinal(key); return(reader.GetFieldValue <T>(ordinal)); }