C# 中NULL的困惑
时间:2011-12-17
来源:互联网
C# 中很多函数的参数加?号,表示可为空,比如DateTime的,但是这样会导致我插入数据库的时间显示默认时间,不光是时间,所有类型都会显示默认值,string会显示空白,int会显示0,我怎么让它显示默认值为NULL,还有一个疑问就是,NULL,在数据库里面表示的是有值还是没有值,因为我试过了,用不为空的字段用NULL赋值,数据库里面是不报错的,还有一种是字段值直接空白的,请问都有些什么讲究,我有点困惑……
作者: asdxz11 发布时间: 2011-12-17
如果参数是Nullable的,也就是带问号的,对应数据库的字段应该是允许空值,字段不允许空值,对应的方法应该是不带?号的,你可以仔细去查一下,应该如此,
如果你参数中传入null,那么方法会把DBNull写入数据库,数据库相应字段会没有值,
如果你参数中传入null,那么方法会把DBNull写入数据库,数据库相应字段会没有值,
作者: stonespace 发布时间: 2011-12-17
你的第一个问题,显示的问题,可以在显示控件中设置如何显示空值,比如你在winform的datagridview中,可以对某个列设置空值应该如何显示,
作者: stonespace 发布时间: 2011-12-17
不管是页面上市什么值,肯定是可以做处理的,现在程序中没问题,都是经过代码处理的,但是看库里面的话,显得很乱,我就是想空的字段直接显示NULL,而不是默认值,这个有办法处理不?
作者: asdxz11 发布时间: 2011-12-17
几个例子就明白了
int? num;//num可以为0
string? str;//可以为""
而null是不没有分配内存的 ?可以为空意思就是默认值 占有内存
int? num;//num可以为0
string? str;//可以为""
而null是不没有分配内存的 ?可以为空意思就是默认值 占有内存
作者: zyloveyrf 发布时间: 2011-12-17
一般不会有string?类型,?只修饰类似int等值类型,因为值类型没有null值,所以要用?让值类型也能有null值,
比如int是值类型,int?就是引用类型了,int?其实是一个类Nullable<int>,和其他引用类型一样,null表示不分配任何内存,
string本身就是引用类型,没必要用string?,因为string本身就有null值,
int? num;
num=null;//此时num不是0,不是默认值,而是null指针,
其实这个写法等于:
Nullable<int> num;
num=null;
比如int是值类型,int?就是引用类型了,int?其实是一个类Nullable<int>,和其他引用类型一样,null表示不分配任何内存,
string本身就是引用类型,没必要用string?,因为string本身就有null值,
int? num;
num=null;//此时num不是0,不是默认值,而是null指针,
其实这个写法等于:
Nullable<int> num;
num=null;
作者: stonespace 发布时间: 2011-12-17
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28