C#中往数据库插入空值的问题
来源:互联网 发布:注册com域名多少钱 编辑:程序博客网 时间:2024/06/04 18:35
在用C#往数据库里面插入记录的时候, 可能有的字段你不赋值,那么这个字段的值就为null, 如果按一般想法的话,这个值会被数据库接受, 然后在数 据表里面显示为NUll, 实际上这就牵扯到一个类型的问题, C#中的NUll于SQL中的null是不一样的, SQL中的null用C#表示出来就 是DBNull.Value, 所以在进行Insert的时候要注意的地方.
Example:
SqlCommand cmd=new SqlCommand("Insert into Student values(@StuName,@StuAge)" ,con);
cmd.parameters.add("@StuName" ,stuname);
cmd.parameters.add("@StuAge" ,stuage);
cmd.ExecuteNonQuery();
这些代码看似没有问题, 其实当stuname于stuage中的任何一个值为null的时候, 这代码就会报错...汗!!!
解决办法:
其实最简单的办法就是进行判断, 当stuname或stuage为空时, 插入DBNull.Value.
但是这样当一个数据库有很多字段时或者是有很多张表时, 代码就会很多了,我也没有找到特别方便的方法,我的方法是:写一个静态的方法来对变量的值进行判断:
Example :
static public object SqlNull(object obj)
{
if (obj == null )
return DBNull.Value;
return obj;
}
//用上面的方法对参数进行了判断
cmd.parameters.add("@StuName" ,SqlNull(stuname));
cmd.parameters.add("@StuAge" ,SqlNull(stuage));
cmd.ExecuteNonQuery();
Example:
SqlCommand cmd=new SqlCommand("Insert into Student values(@StuName,@StuAge)" ,con);
cmd.parameters.add("@StuName" ,stuname);
cmd.parameters.add("@StuAge" ,stuage);
cmd.ExecuteNonQuery();
这些代码看似没有问题, 其实当stuname于stuage中的任何一个值为null的时候, 这代码就会报错...汗!!!
解决办法:
其实最简单的办法就是进行判断, 当stuname或stuage为空时, 插入DBNull.Value.
但是这样当一个数据库有很多字段时或者是有很多张表时, 代码就会很多了,我也没有找到特别方便的方法,我的方法是:写一个静态的方法来对变量的值进行判断:
Example :
static public object SqlNull(object obj)
{
if (obj == null )
return DBNull.Value;
return obj;
}
//用上面的方法对参数进行了判断
cmd.parameters.add("@StuName" ,SqlNull(stuname));
cmd.parameters.add("@StuAge" ,SqlNull(stuage));
cmd.ExecuteNonQuery();
- C#中往数据库插入空值的问题
- C#中往数据库插入/更新时候关于NUll空值的处理
- C#向ACCESS数据库插入空值
- C#向ACCESS数据库插入空值
- asp.net中对数据库表插入null空值的问题
- asp.net中对数据库表插入null空值的问题
- 向数据库中插入空值
- C#中解决插入数据库的某个字段类型为datetime 为空
- C#中解决插入数据库的某个字段类型为datetime 为空
- C#中解决插入数据库的某个字段类型为datetime 为空
- C# 空值的问题
- C#向oracle数据库中插入timestamp类型的值
- Oracle数据库中数字与空值的排序问题
- 关于Oracle数据库中SQL空值排序的问题
- 关于Oracle数据库中SQL空值排序的问题
- 关于Oracle数据库中SQL空值排序的问题
- asp.net关于TextBox.Text的值为空时,将string数据插入到数据库中int数据的问题的解决方法
- c#程序中使用"like“查询access数据库查询为空的问题
- css的元素分类
- tomcat6.0配置(含配置视频下载)
- Mysql 笔记一
- CentOS安装libpcap
- 进程快照获取
- C#中往数据库插入空值的问题
- Bug碎碎念(序)
- ARM-Linux s3c2440 之UART分析(二)
- 国家文物局等再次研究是否大规模勘探武则天墓
- js脚本execl导出jsp中table,IE报脚本错误
- 利用MCI命令进行 播放录制音乐,以及弹出光驱,音量控制获得播放进度等等操作。。。开发必备。
- JSP各种乱码的处理(一)
- 通过proc文件系统输出必要的Linux内核信息(上)
- 浅谈下指针与指针变量