首页 新闻 会员 周边

关于.NET三层架构,数据库NULL处理的问题

0
[已解决问题] 解决于 2012-06-20 14:22

刚进入公司的一个小菜,工作9个月,刚适应公司的环境。

做了一个小项目,觉得有点收获,别的不说,起码快捷键记得挺熟了。

开发的时候没有划分架构,项目组长也没考虑这么多,做到最后他们的代码跟拉面差不多了。

我都懒得看。好歹我知道没事重构下,但是没有划分好的层,导致现在我连我自己的代码都不乐意看了,所以没事学习学习,看看大家用了这么久的三层架构。拿出经典的例子来:Petshop。

我看了一遍,有一个问题,希望得到帮助!

在SQLServerDAL 层,有基本的操作,例如GET操作。我要把数据库的一行提取出来,生成相应的Model对象,但是对于NULL值的话,如何创建这个对象呢?

如果遇到NULL立马改成DBNull.Value的话,值就是""不是NULL了,然后我在对这个对象进行Update的话,原来的NULL就成了""了。不要问我为什么要保留NULL,因为我们做的Schedule Server判断字符串为空时,都是根据Column为NULL判断了,没办法。

希望大家帮我下,感激不尽!

大尾巴狼R的主页 大尾巴狼R | 菜鸟二级 | 园豆:204
提问于:2012-06-12 10:54
< >
分享
最佳答案
0

NULL就用NUL,既然不要改为DBNull.Value,不要改成""。

如果用的是ADO.NET,传递的是NULL,更新后数据库中的值也会是NULL。

奖励园豆:5
dudu | 高人七级 |园豆:30994 | 2012-06-12 11:29
其他回答(2)
0

一般这问题,可能是在建立实体(Model)时,对值类型要加?号,如:

publick int? ID  这样的话该值默认为null,而不是0。

推荐使用CYQ.Data 数据框架,能节省你70%以上代码量。

路过秋天 | 园豆:4787 (老鸟四级) | 2012-06-12 12:03
0

如果是DBNULL,就输出NULL,如果是NULL,就UPDATE DBNULL,这个没有什么冲突。

无之无 | 园豆:5095 (大侠五级) | 2012-06-12 15:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册