123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237 |
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Data.SqlTypes;
- using System.Linq;
- using System.Text;
- using Ant.Utility;
- namespace Ant.Extensions
- {
- public static class DataReaderExtensions
- {
- public static short GetInt16(IDataReader reader, int ordinal)
- {
- return reader.GetInt16(ordinal);
- }
- public static short? GetInt16_Nullable(this IDataReader reader, int ordinal)
- {
- if (reader.IsDBNull(ordinal))
- {
- return null;
- }
- return reader.GetInt16(ordinal);
- }
- public static int GetInt32(IDataReader reader, int ordinal)
- {
- return reader.GetInt32(ordinal);
- }
- public static int? GetInt32_Nullable(this IDataReader reader, int ordinal)
- {
- if (reader.IsDBNull(ordinal))
- {
- return null;
- }
- return reader.GetInt32(ordinal);
- }
- public static long GetInt64(IDataReader reader, int ordinal)
- {
- return reader.GetInt64(ordinal);
- }
- public static long? GetInt64_Nullable(this IDataReader reader, int ordinal)
- {
- if (reader.IsDBNull(ordinal))
- {
- return null;
- }
- return reader.GetInt64(ordinal);
- }
- public static decimal GetDecimal(IDataReader reader, int ordinal)
- {
- return reader.GetDecimal(ordinal);
- }
- public static decimal? GetDecimal_Nullable(this IDataReader reader, int ordinal)
- {
- if (reader.IsDBNull(ordinal))
- {
- return null;
- }
- return reader.GetDecimal(ordinal);
- }
- public static double GetDouble(IDataReader reader, int ordinal)
- {
- return reader.GetDouble(ordinal);
- }
- public static double? GetDouble_Nullable(this IDataReader reader, int ordinal)
- {
- if (reader.IsDBNull(ordinal))
- {
- return null;
- }
- return reader.GetDouble(ordinal);
- }
- public static float GetFloat(IDataReader reader, int ordinal)
- {
- return reader.GetFloat(ordinal);
- }
- public static float? GetFloat_Nullable(this IDataReader reader, int ordinal)
- {
- if (reader.IsDBNull(ordinal))
- {
- return null;
- }
- return reader.GetFloat(ordinal);
- }
- public static bool GetBoolean(IDataReader reader, int ordinal)
- {
- return reader.GetBoolean(ordinal);
- }
- public static bool? GetBoolean_Nullable(this IDataReader reader, int ordinal)
- {
- if (reader.IsDBNull(ordinal))
- {
- return null;
- }
- return reader.GetBoolean(ordinal);
- }
- public static DateTime GetDateTime(IDataReader reader, int ordinal)
- {
- return reader.GetDateTime(ordinal);
- }
- public static DateTime? GetDateTime_Nullable(this IDataReader reader, int ordinal)
- {
- if (reader.IsDBNull(ordinal))
- {
- return null;
- }
- return reader.GetDateTime(ordinal);
- }
- public static Guid GetGuid(IDataReader reader, int ordinal)
- {
- return reader.GetGuid(ordinal);
- }
- public static Guid? GetGuid_Nullable(this IDataReader reader, int ordinal)
- {
- if (reader.IsDBNull(ordinal))
- {
- return null;
- }
- return reader.GetGuid(ordinal);
- }
- public static byte GetByte(IDataReader reader, int ordinal)
- {
- return reader.GetByte(ordinal);
- }
- public static byte? GetByte_Nullable(this IDataReader reader, int ordinal)
- {
- if (reader.IsDBNull(ordinal))
- {
- return null;
- }
- return reader.GetByte(ordinal);
- }
- public static char GetChar(IDataReader reader, int ordinal)
- {
- return reader.GetChar(ordinal);
- }
- public static char? GetChar_Nullable(this IDataReader reader, int ordinal)
- {
- if (reader.IsDBNull(ordinal))
- {
- return null;
- }
- return reader.GetChar(ordinal);
- }
- public static string GetString(IDataReader reader, int ordinal)
- {
- object o = reader.GetValue(ordinal);
- if (o == DBNull.Value)
- {
- return null;
- }
- return (string)o;
- }
- public static object GetValue(IDataReader reader, int ordinal)
- {
- object o = reader.GetValue(ordinal);
- if (o == DBNull.Value)
- {
- return null;
- }
- return o;
- }
- public static T GetEnum<T>(this IDataReader reader, int ordinal) where T : struct
- {
- int value = reader.GetInt32(ordinal);
- T t = (T)Enum.ToObject(typeof(T), value);
- return t;
- }
- public static T? GetEnum_Nullable<T>(this IDataReader reader, int ordinal) where T : struct
- {
- if (reader.IsDBNull(ordinal))
- {
- return null;
- }
- int value = reader.GetInt32(ordinal);
- T t = (T)Enum.ToObject(typeof(T), value);
- return t;
- }
- public static T GetTValue<T>(this IDataReader reader, int ordinal)
- {
- T obj = default(T);
- object val = reader.GetValue(ordinal);
- if (val == DBNull.Value)
- {
- val = null;
- }
- try
- {
- return (T)val;
- }
- catch (NullReferenceException)
- {
- throw new Exception("The column value could not be null");
- }
- }
- public static T? GetTValue_Nullable<T>(this IDataReader reader, int ordinal) where T : struct
- {
- object val = reader.GetValue(ordinal);
- if (val == DBNull.Value)
- {
- return null;
- }
- return new Nullable<T>((T)val);
- }
- }
- }
|