zoukankan      html  css  js  c++  java
  • 扩展方法

     #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
  • 相关阅读:
    花儿飘落何处
    别了,攀枝花
    致我心爱的梦中女孩
    解锁华为云AI如何助力无人车飞驰“新姿势”,大赛冠军有话说
    技术实操丨HBase 2.X版本的元数据修复及一种数据迁移方式
    技术实践丨手把手教你使用MQTT方式对接华为IoT平台 华为云开发者社区
    必须收藏:20个开发技巧教你开发高性能计算代码
    原来AI也可以如此简单!教你从0到1开发开源知识问答机器人
    诸多老牌数据仓库厂商当前,Snowflake如何创近12年最大IPO金额
    详解GaussDB(DWS) explain分布式执行计划
  • 原文地址:https://www.cnblogs.com/whl4835349/p/10406089.html
Copyright © 2011-2022 走看看