sql数据库有一列允许为空但是插入不进去数据

数据库里面一列允许为空,并且这列不是主外键比如QQ列允许为空列(UserName,QQ,PhoneNum)stringsql1=@"insertintotb_User(U... 数据库 里面一列允许为空,并且这列不是主外键 比如QQ列允许为空
列(UserName,QQ,PhoneNum)
string sql1 = @"insert into tb_User(UserName,QQ,PhoneNum) values(@UserName,@QQ,@PhoneNum)";

com.Parameters.Add(new SqlParameter("@UserName",UserName));
com.Parameters.Add(new SqlParameter("@QQ", QQ));
com.Parameters.Add(new SqlParameter("@PhoneNum", PhoneNum));
插入的时候QQ的值为NULL 如不进去。
展开
 我来答
落月Prc
2013-06-08 · TA获得超过2789个赞
知道大有可为答主
回答量:2011
采纳率:100%
帮助的人:2437万
展开全部
com.Parameters.Add(new SqlParameter("@QQ", QQ));
改为:
com.Parameters.Add(new SqlParameter("@QQ", QQ==null?DBNull.Value : QQ));
如果QQ是NULL的话,那么无法直接往数据库里插入,必须改成数据库能识别的DBNull.Value。
更多追问追答
追问
如果QQ是byte[]类型呢,数据库里面是image。 这么写的话会报错 DBNull.Value无法饮食转换为byte[]
追答
你的意思是QQ为空的时候,长度其实是0对吧?
那就改成
com.Parameters.Add(new SqlParameter("@QQ", QQ.Length==0?DBNull.Value : QQ));
匿名用户
2013-06-08
展开全部
看看QQ列是什么类型,如果是数字的话,你插入的可能是字符串‘NULL’,主要看报了什么错误,是类型不匹配还是不能为空
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
29...6@qq.com
2013-06-08
知道答主
回答量:11
采纳率:0%
帮助的人:1.6万
展开全部
dhgghg hg h
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式