使用string.Format("insert into table values ('{0}','{1}','{2}'....)",value1,value2,value3...),其中有int类型的字段,赋值时想赋值为空(NULL),但是使用string.Format()方式的话,好像不能赋值为NULL,只能为"",该怎么办呢?
使用参数化的 sql ,然后赋值 DbNull.Value
我这是从一个表里查出来的数据,其中的字段属性类型是固定的,如果查出来的值为NULL,我也要给我的表中对应的字段赋值为NULL。刚开始是拼接的时候,null会被忽略,类似于这种,详细展示的
这样之后,拼接的sql语句对应的null字段是没有任何值的。
用参数化的sql,也是这样的问题。
所以,现在问题是怎么处理这条数据,能把NULL赋值进去?
谢谢了。
@1sa2sa: 可以试试直接就用 decimal?
var parameter = new SqlParameter("@Pressure", item.Pressure);
如果不行,可以使用下面的代码
var parameter = new SqlParameter("@Pressure", item.Pressure.HasValue ? (object)item.Pressure.Value : DBNull.Value );
@dudu: 这样可以的。厉害。谢谢了。
string.Format("insert into table values ({0},'{1}','{2}'....)","null",value2,value3...),这样就可以了,
但是觉得SQL拼接语句的话不太安全,使用SqlParameter传参更好点,就是写起来比较烦
问题解决了,谢谢了