程序拼接sql插入语句遇到为NULL 的int 字段怎么处理
答案:2 悬赏:40 手机版
解决时间 2021-01-25 22:14
- 提问者网友:捧腹剧
- 2021-01-25 10:10
程序中拼接SQL语句的时候往往会遇到插入NUll。sql=“Insert into tableA(id,number) values(8," datatable.Rows[0]["Number"].ToString() ")”;如果 datatable 行1 列 Number 没值的话, 那么语句就成了insert into tableA(id,number) values(8,)这样就会出问题遇到 这种情况怎么处理
最佳答案
- 五星知识达人网友:不想翻身的咸鱼
- 2021-01-25 11:28
如果number是字符型,只需要将" datatable.Rows[0]["Number"].ToString() "用单引号括起来:
sql=“Insert into tableA(id,number) values(8,'"datatable.Rows[0]["Number"].ToString() "')”;
如果是数值型的话,保险起见,改成如下:
sql=“Insert into tableA(id,number) values(8,isnull('"datatable.Rows[0]["Number"].ToString() "','') when '' then 0 else '"datatable.Rows[0]["Number"].ToString() "' end)”;
sql=“Insert into tableA(id,number) values(8,'"datatable.Rows[0]["Number"].ToString() "')”;
如果是数值型的话,保险起见,改成如下:
sql=“Insert into tableA(id,number) values(8,isnull('"datatable.Rows[0]["Number"].ToString() "','') when '' then 0 else '"datatable.Rows[0]["Number"].ToString() "' end)”;
全部回答
- 1楼网友:行雁书
- 2021-01-25 12:43
这就涉及到null的处理。楼主可以将原句改为如下:
sql=“insert into tablea(id,number) values(8,isnull("+datatable.rows[0]["number"].tostring()+",null))”;
或
sql=“insert into tablea(id,number)
select 8,isnull("+datatable.rows[0]["number"].tostring()+",null) ”;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯