我在数据源中生成的强类型数据集. 其中的一些表里有在数据库中允许空值的列. 
在前台处理程序中,用SQLDataAdaptor提交更新. 可是遇到有空值时,好象总是会出错. 我试过用nullable类型来处理数据,也不行,限制挺多的.
或者手工更改dataadaptor的更新字串,这样勉强可行, 不过很费事,还容易出错.
没办法,只好在遇到有空值时, 用SQLCommand来提交更新了. 这样也是很麻烦,不易维护,也没有通用性.请高手们讲讲, 有什么比较好的方法处理允许空值的列吗? 最好是比较规范的,通用性强的方法.
谢谢

解决方案 »

  1.   

    在什么时候转? 能给个示例吗?我试过好象dataset在Get或是set值时,都不支持dbnull.value,会引发错误.
      

  2.   

    按照我的理解,dataSet定义Column时,应该只是针对该字段的数据类型进行定义,对于该字段存放值是否为空是不考虑的;
    只有在dataSet插入Row时,进行控制插入的空值;
    不知道这样理解是否正确?
      

  3.   

    我一般是在model中处理,
     private string _a="";
    //这样不就行了嘛,
      

  4.   

    方法一:给数据库中相应字段默认值
    方法二: 判断取出的值是否是System.DBNull.Value,然后执行相应的代码
      

  5.   

    @@ 最简单就是 不用null 用string.empty 默认赋值 哈哈
      

  6.   

    个人写的数据访问中间层GetSafeData.cs,其中读取string时的方法
        public static string ValidateDataRow_S(DataRow row, string colname)
        {
            if (row[colname] != DBNull.Value)
                return row[colname].ToString();
            else
                return System.String.Empty;
        }
    程序中调用
    this._EquipmentName = GetSafeData.ValidateDataRow_S(dr, "EquipmentName");