日期:2014-05-16  浏览次数:20449 次

将空值转换为数据库字段的NULL形式
[size=medium]
        /// <summary>
        /// 将空("")或null值的字符串转换为空字段
        /// </summary>
        /// <param name="obj">传入的参数</param>
        public static object GetSqlNull(object obj)
        {
            if (string.IsNullOrEmpty(obj.ToString()))
            {
                return DBNull.Value;
            }
            else
            {
                return obj;
            }
        }

        /// <summary>
        /// 将值类型(整型、浮点型、Decimal型、boo型、可空类型(Nullable<T>泛型结构体))转换为空字段
        /// </summary>
        /// <param name="obj">传入的参数</param>
        public static object GetSqlNull(object obj)
        {
            return obj == null ? (object)DBNull.Value : obj;
        }   


System.Nullable<T> 的简单理解        
其中一种用途:数据库中的int类型可以为空 在C# 中的处理为int?  

限制:T必须为值类型,为引用类型没有意义   

范围:可空类型可以表示其基础值类型正常范围内的值,再加上一个 null 值。

基本属性:Nullable<T> 结构的两个基础成员为 HasValue和 Value属性。如果 Nullable<T>) 对象的 HasValue属性为 true,则可以使用 Value属性访问该对象的值。如果 HasValue属性为 false,则表示尚未定义该对象的值,并且尝试访问 Value属性时会引发异常


[/size]