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 如不进去。 展开
列(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 如不进去。 展开
3个回答
展开全部
com.Parameters.Add(new SqlParameter("@QQ", QQ));
改为:
com.Parameters.Add(new SqlParameter("@QQ", QQ==null?DBNull.Value : QQ));
如果QQ是NULL的话,那么无法直接往数据库里插入,必须改成数据库能识别的DBNull.Value。
改为:
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));
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询