C#生成SqlServer插入语句,给Values中的每个字段用变量赋值,如果变量为空且类型为int则出现【,,】的情况

出现两个逗号相连的情况,那么数据库会报错。如果用NULL替换,表中的值是"NULL",我想让表值为空(即没有任何文字),请问Values中的变量应该如何赋值?privat... 出现两个逗号相连的情况,那么数据库会报错。如果用NULL替换,表中的值是"NULL",我想让表值为空(即没有任何文字),请问Values中的变量应该如何赋值?
private void foo()
{
string str1 = "";
string str2 = "";
string sql = "insert into table(a,b,c) values("+str1+","+str2+",'str1和str2均为int或decimal类型')";
/*这是错误的SQL语句,也不希望出现【NULL,NULL,''】的情况*/
}

注:table()中的字段不可以省略,会出现其他状况。。
展开
 我来答
sssarg
推荐于2018-04-10
知道答主
回答量:17
采纳率:0%
帮助的人:3.9万
展开全部
连接时候判断一下str是不是null,如果是就用空字符串代替。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
syht2000
高粉答主

2014-10-12 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.4亿
展开全部
string str1 = "";
string str2 = "";
string str3="";
str1=(str1==""?"null",str1);
str2=(str2==""?"null",str2);
str3=(str3==""?"null",str3);
string sql =string.Format( "insert into table(a,b,c) values({0},{1},{2})",str1,str2,str3);
//前提是你的数据库中字段是int等数字类型的,并且设置成了允许为空。
追问
string str1="";
//那么
str1=(str1==""?"null",str1);//的结果一定是
str1="null";//那么
string sql = "insert into table(a) values(null)";
/*在数据表中该字段的值显示为“NULL”,我需要的是该字段为空(即没有任何字符,包括NULL在内),就像没有对该字段做添加操作一样*/
追答
那个null是你的sql管理器的显示,并不是真的数据,即使你什么也不做,只要添加了一行,那里必然会显示null,如果说你连这个null也不想显示,那只能看看管理器有没有这种设置了(虽然没有任何意义)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友770eb8bca
2014-10-12 · TA获得超过240个赞
知道小有建树答主
回答量:647
采纳率:50%
帮助的人:230万
展开全部
“+str1+” 全部改成'"+str1+"'
追问
经你提醒,今天试了下,确实发现了问题,如果手动赋值str1=NULL,数据表显示的是NULL,而如果真的为空,是这种形式的:,相比之下,我赋值的方法明显是错误的,追加10分
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
巨蟹囧rz小朋友
2014-10-12 · 超过85用户采纳过TA的回答
知道小有建树答主
回答量:181
采纳率:0%
帮助的人:122万
展开全部
表中该列设成可为空呢
追问
因为必须给insert语句values中的变量赋值,如果变量为空,那么values中会出现“,,”两个逗号,中间没有值的情况,如果变量赋值NULL,那么数据表中会出现NULL,不希望出现这种有NULL的情况
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式