A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xinchenglong 中级黑马   /  2013-8-24 17:53  /  1338 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

通过学习WPF中的视频教程,第一次了解到可空数据类型。
可空数据类型如:引用类型、string,自己定义的类等。
不可空的数据类型:值类型等。
在程序中这样写就是错误的, int a=null;(错误)
nt?i=null;在不可为空的类型后加?然后就可以等于null了

虽然对可空数据类型有个初步了解,但是还不能完全理解,请各位看官解释一下,数据库中的null和这里的null又有什么区别呢?

评分

参与人数 1技术分 +1 收起 理由
赵宗荣 + 1

查看全部评分

4 个回复

倒序浏览
数据库中的null相当于wpf中的" "(什么都没有),在数据库中" "(什么都没有)则在wpf中是null

评分

参与人数 1技术分 +1 收起 理由
赵宗荣 + 1

查看全部评分

回复 使用道具 举报
在数据库中,NULL表示不知道空表示没有。不一样。

代码中DBNull.Value表示数据库中的NULL
为了避免SQL的注入我们会利用参数化
cmd.Parameters.Add(new SqlParameter("@name", name));
如果name的值为null,那么将会报错,因为SqlParameter中第二个参数如果为null,则表示没有提供参数。
所以我们在往数据库中插值的时候
public static object ToDbValue(object value)
{
if (value == null)
{
  return DBNull.Value;
}
else
{
  return value;
}
}

如果值为null就要转为DBNull.Value
同样的,如果是从数据库中读取,则:
public static object FromDbValue(object value)
{
if (value == DBNull.Value)
{
  return null;
}
else
{
  return value;
}
}

也就是说如果数据库中是NULL的话,到了代码里是DBNull.Value,再转一下就好了。

当你从数据库中读取到DataSet的时候,得到DataTable,然后到每一列column
其中有:
column.AllowDBNull    是否允许为null
column.DataType.IsValueType    是否是值类型
回复 使用道具 举报
哦,数据库中的空置原来是这样操作的啊!
回复 使用道具 举报
哦,数据库中的空置原来是这样操作的啊!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马