日期:2014-05-17  浏览次数:20901 次

向可为空的INT 型字段插入NULL值(诚向诸位求助)
现在遇到一个问题,就是向可为空的INT 型字段插入NULL值时,构造SQL语句出了问题。

string strSQL = "";
strSQL = string.Format("INSERT INTO A(col1,col2)VALUES({0},{1})", dr["col1"], dr["col2"]);
dbClient.sqlExecuteNonQuery(strSQL);

其中两列均为INT型,均可为NULL,dr["col1"]为NULL

此时构造的SQL 语句就有问题了。。。。。。
INSERT INTO A(col1,col2)VALUES(,1)

求解决方法。

注:当字段为NULL时,不能用默认值替代。

在线等,提前谢谢了

------解决方案--------------------
将dr["col1"]的值改为0试试
------解决方案--------------------
你赋值的时候加个判断就是了。。。
------解决方案--------------------
引用:
用SqlParameter


+1
直接拼接,可写成
string strSQL = string.Format("INSERT INTO A(col1,col2)VALUES({0},{1})", dr["col1"]== DBNull.Value ? "NULL" : dr["col1"].ToString(), dr["col2"]== DBNull.Value ? "NULL" : dr["col2"].ToString());