首页 新闻 会员 周边 捐助

sql语句拼接,赋值为NULL

0
[已解决问题] 解决于 2018-06-15 11:53

使用string.Format("insert into table values ('{0}','{1}','{2}'....)",value1,value2,value3...),其中有int类型的字段,赋值时想赋值为空(NULL),但是使用string.Format()方式的话,好像不能赋值为NULL,只能为"",该怎么办呢?

1sa2sa的主页 1sa2sa | 菜鸟二级 | 园豆:289
提问于:2018-06-15 09:03
< >
分享
最佳答案
0

使用参数化的 sql ,然后赋值 DbNull.Value

奖励园豆:5
dudu | 高人七级 |园豆:29379 | 2018-06-15 10:11

我这是从一个表里查出来的数据,其中的字段属性类型是固定的,如果查出来的值为NULL,我也要给我的表中对应的字段赋值为NULL。刚开始是拼接的时候,null会被忽略,类似于这种,详细展示的
这样之后,拼接的sql语句对应的null字段是没有任何值的。
用参数化的sql,也是这样的问题。

所以,现在问题是怎么处理这条数据,能把NULL赋值进去?
谢谢了。

1sa2sa | 园豆:289 (菜鸟二级) | 2018-06-15 10:38

@1sa2sa: 可以试试直接就用 decimal?

var parameter = new SqlParameter("@Pressure", item.Pressure);

如果不行,可以使用下面的代码

var parameter = new SqlParameter("@Pressure", item.Pressure.HasValue ? (object)item.Pressure.Value : DBNull.Value );
dudu | 园豆:29379 (高人七级) | 2018-06-15 11:06

@dudu: 这样可以的。厉害。谢谢了。

1sa2sa | 园豆:289 (菜鸟二级) | 2018-06-15 11:52
其他回答(1)
0

string.Format("insert into table values ({0},'{1}','{2}'....)","null",value2,value3...),这样就可以了,

但是觉得SQL拼接语句的话不太安全,使用SqlParameter传参更好点,就是写起来比较烦

华临天下 | 园豆:1501 (小虾三级) | 2018-06-15 10:14

问题解决了,谢谢了

支持(0) 反对(0) 1sa2sa | 园豆:289 (菜鸟二级) | 2018-06-15 11:53
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册