当前位置:  开发笔记 > 编程语言 > 正文

即使AllowDBNull = False,数据集也允许Null值?

如何解决《即使AllowDBNull=False,数据集也允许Null值?》经验,为你挑选了1个好方法。

我使用VS2008数据集设计器设计了一个数据集.在其中一个数据表中,我将大多数列的"AllowDBNull"属性设置为False.但是,如果我为这些列创建包含空值的DataRow,则此数据表会接受此行,而不会出现任何错误.

我在这里不明白吗?请指教.谢谢.

然而,编辑 Mike Spross的优秀解释会带来另一个问题.如果它们是System.DBNull,我们如何检查文本字段?令人惊讶的是,DataSets没有将字符串""视为System.DBNull并抛出异常.或者不是吗?

编辑我想我已经找到了问题和原因.我正在初始化DataTable的新行,然后将值填入该行.初始化行时,字符串的默认值,即""可能正在该列中填充.我想是的呢?有关于此的任何想法?



1> Mike Spross..:

简短的回答是:

System.DBNull.Value != null

更长的答案是:

在C#中,NULLSQL 中的值的概念由类的Value属性表示System.DBNull.在处理数据库时,更熟悉的C#null实际上并不意味着"空值".

将数据库列设置null为时,ADO.NET会将列初始化为该列的默认值(例如,int列将初始化为0).也就是说,使用nullcan实际上会导致非空值最终进入数据库,因此您不会收到错误.

如果您改为将数据库列设置为System.DBNull.Value,则该列实际上将设置为NULL.这种情况AllowDBNulls == false会阻止你这样做.

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有