• 扩展方法


     #region DataReader扩展
        static class DataReaderExtension
        {
            /// <summary>
            /// 获取DataReader值
            /// </summary>
            /// <param name="dr">DataReader</param>
            /// <param name="name">字段名</param>
            /// <returns></returns>
            private static object GetValue(this IDataReader dr, string name)
            {
                return dr[name];
                /*for (int i = 0; i < dr.FieldCount; i++)
                {
                    string column = dr.GetName(i);
                    if (string.Compare(column, name, true) == 0)
                        return dr[i];
                }
                return DBNull.Value;*/
            }
            /// <summary>
            /// 获取值并且转换为布尔值
            /// </summary>
            public static bool GetBoolean(this IDataReader dr, string name)
            {
                object value = dr.GetValue(name);
                if (value != DBNull.Value)
                    return (bool)value;
                else
                    return false;
            }
            /// <summary>
            /// 获取值并且转换为8位无符号整数
            /// </summary>
            public static byte GetByte(this IDataReader dr, string name)
            {
                object value = dr.GetValue(name);
                if (value != DBNull.Value)
                    return (byte)value;
                else
                    return 0;
            }
            /// <summary>
            /// 获取值并且转换为时间
            /// </summary>
            public static DateTime GetDateTime(this IDataReader dr, string name)
            {
                object value = dr.GetValue(name);
                if (value != DBNull.Value)
                    return Convert.ToDateTime(value);
                else
                    return DateTime.MinValue;
            }
            /// <summary>
            /// 获取值并且转换为可空时间
            /// </summary>
            public static DateTime? GetNullDateTime(this IDataReader dr, string name)
            {
                object value = dr.GetValue(name);
                if (value != DBNull.Value)
                    return Convert.ToDateTime(value);
                else
                    return null;
            }
            /// <summary>
            /// 获取值并且转换为数字
            /// </summary>
            public static decimal GetDecimal(this IDataReader dr, string name)
            {
                object value = dr.GetValue(name);
                if (value is DBNull)
                    return 0;
                else
                    return (decimal)value;
            }
            /// <summary>
            /// 获取值并且转换为双精度小数
            /// </summary>
            public static double GetDouble(this IDataReader dr, string name)
            {
                object value = dr.GetValue(name);
                if (value != DBNull.Value)
                    return (double)value;
                else
                    return 0;
            }
            /// <summary>
            /// 获取值并且转换为单精度小数
            /// </summary>
            public static float GetFloat(this IDataReader dr, string name)
            {
                object value = dr.GetValue(name);
                if (value != DBNull.Value)
                    return (float)value;
                else
                    return 0;
            }
            /// <summary>
            /// 获取值并且转换为短整型
            /// </summary>
            public static short GetShort(this IDataReader dr, string name)
            {
                object value = dr.GetValue(name);
                if (value != DBNull.Value)
                    return (short)value;
                else
                    return 0;
            }
            /// <summary>
            /// 获取值并且转换为整型
            /// </summary>
            public static int GetInt(this IDataReader dr, string name)
            {
                object value = dr.GetValue(name);
                if (value != DBNull.Value)
                    return (int)value;
                else
                    return 0;
            }
            /// <summary>
            /// 获取值并且转换为长整形
            /// </summary>
            public static long GetLong(this IDataReader dr, string name)
            {
                object value = dr.GetValue(name);
                if (value != DBNull.Value)
                    return (long)value;
                else
                    return 0;
            }
            /// <summary>
            /// 获取值并且转换为字符串
            /// </summary>
            public static string GetString(this IDataReader dr, string name)
            {
                object value = dr.GetValue(name);
                if (value != DBNull.Value)
                    return value.ToString();
                else
                    return string.Empty;
            }
        } 
        #endregion
    
        #region DataRow扩展
        static class DataRowExtension
        {
            /// <summary>
            /// 获取DataReader值
            /// </summary>
            /// <param name="dr">DataReader</param>
            /// <param name="name">字段名</param>
            /// <returns></returns>
            private static object GetValue(this DataRow row, string name)
            {
                int column_index = row.Table.Columns.IndexOf(name);
                if (column_index >= 0)
                    return row[column_index];
                else
                    return DBNull.Value;
            }
            /// <summary>
            /// 获取值并且转换为布尔值
            /// </summary>
            public static bool GetBoolean(this DataRow row, string name)
            {
                
                object value = row[name];
                if (value != DBNull.Value)
                    return (bool)value;
                else
                    return false;
            }
            /// <summary>
            /// 获取值并且转换为8位无符号整数
            /// </summary>
            public static byte GetByte(this DataRow row, string name)
            {
                object value = row.GetValue(name);
                if (value != DBNull.Value)
                    return (byte)value;
                else
                    return 0;
            }
            /// <summary>
            /// 获取值并且转换为时间
            /// </summary>
            public static DateTime GetDateTime(this DataRow row, string name)
            {
                object value = row.GetValue(name);
                if (value != DBNull.Value)
                    return Convert.ToDateTime(value);
                else
                    return DateTime.MinValue;
            }
            /// <summary>
            /// 获取值并且转换为可空时间
            /// </summary>
            public static DateTime? GetNullDateTime(this DataRow row, string name)
            {
                object value = row.GetValue(name);
                if (value != DBNull.Value)
                    return Convert.ToDateTime(value);
                else
                    return null;
            }
            /// <summary>
            /// 获取值并且转换为数字
            /// </summary>
            public static decimal GetDecimal(this DataRow row, string name)
            {
                object value = row.GetValue(name);
                if (value is DBNull)
                    return 0;
                else
                    return (decimal)value;
            }
            /// <summary>
            /// 获取值并且转换为双精度小数
            /// </summary>
            public static double GetDouble(this DataRow row, string name)
            {
                object value = row.GetValue(name);
                if (value != DBNull.Value)
                    return (double)value;
                else
                    return 0;
            }
            /// <summary>
            /// 获取值并且转换为单精度小数
            /// </summary>
            public static float GetFloat(this DataRow row, string name)
            {
                object value = row.GetValue(name);
                if (value != DBNull.Value)
                    return (float)value;
                else
                    return 0;
            }
            /// <summary>
            /// 获取值并且转换为短整型
            /// </summary>
            public static short GetShort(this DataRow row, string name)
            {
                object value = row.GetValue(name);
                if (value != DBNull.Value)
                    return (short)value;
                else
                    return 0;
            }
            /// <summary>
            /// 获取值并且转换为整型
            /// </summary>
            public static int GetInt(this DataRow row, string name)
            {
                object value = row.GetValue(name);
                if (value != DBNull.Value)
                    return (int)value;
                else
                    return 0;
            }
            /// <summary>
            /// 获取值并且转换为长整形
            /// </summary>
            public static long GetLong(this DataRow row, string name)
            {
                object value = row.GetValue(name);
                if (value != DBNull.Value)
                    return (long)value;
                else
                    return 0;
            }
            /// <summary>
            /// 获取值并且转换为字符串
            /// </summary>
            public static string GetString(this DataRow row, string name)
            {
                object value = row.GetValue(name);
                if (value != DBNull.Value)
                    return value.ToString();
                else
                    return string.Empty;
            }
        }
        #endregion
    111111
  • 相关阅读:
    【解决】Linux Tomcat启动慢Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [236,325] milliseconds
    初学java总结
    第8周课程总结&实验报告6
    第9周总结&实验报告7
    实验报告5&第七周课程总结
    第五周课程总结、实验报告三
    第六周总结&实验报告四
    使用REST接口获取GeoServer中的图层列表
    网上最流行的FLASH焦点图文幻灯片(focus.swf改进版),可支持jpg/gif/png/swf文件(转载)
    使用PostgreSQL的bytea字段存读取文件及读取出错问题处理
  • 原文地址:https://www.cnblogs.com/whl4835349/p/10406089.html
Copyright © 2020-2023  润新知