Foxtable(狐表)用户栏目专家坐堂 → [求助]sql参数空项会出问题吗


  共有2933人关注过本帖树形打印复制链接

主题:[求助]sql参数空项会出问题吗

帅哥哟,离线,有人找我吗?
fczhaobo
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:408 积分:4206 威望:0 精华:0 注册:2017/3/24 15:10:00
[求助]sql参数空项会出问题吗  发帖心情 Post By:2021/1/20 9:26:00 [只看该作者]

Dim cmd As new SQLCommand
cmd.C
cmd.CommandText = "Ins-ert Into WXUsers (openid,nickname,sex,city,country,province,headimgurl,groupid,remark,language,tagid_list,subscribe_time) Values(?,?,?,?,?,?,?,?,?,?,?,?)"
cmd.Parameters.Add("@openid",jo(openid))
cmd.Parameters.Add("@nickname",jo(nickname))
cmd.Parameters.Add("@sex",jo(sex))
cmd.Parameters.Add("@city",jo(city))
cmd.Parameters.Add("@country",jo(country))
cmd.Parameters.Add("@province",jo(province))
cmd.Parameters.Add("@headimgurl",jo(headimgurl))
cmd.Parameters.Add("@groupid",jo(groupid))
cmd.Parameters.Add("@remark",jo(remark))
cmd.Parameters.Add("@language",jo(language))
cmd.Parameters.Add("@tagid_list",jo(tagid_list))
cmd.Parameters.Add("@subscribe_time",jo(subscribe_time))
cmd.ExecuteNonQuery

以上代码,如果有一项出现空项会出现问题吗?
[此贴子已经被作者于2021/1/20 9:26:30编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111427 积分:567211 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/1/20 9:34:00 [只看该作者]

赋值nothing

cmd.Parameters.Add("@nickname",nothing)

 回到顶部
帅哥哟,离线,有人找我吗?
fczhaobo
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:408 积分:4206 威望:0 精华:0 注册:2017/3/24 15:10:00
  发帖心情 Post By:2021/1/20 9:39:00 [只看该作者]

那就太费事了,还能一个一个的进行判断吗?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111427 积分:567211 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/1/20 9:47:00 [只看该作者]

方法1、空值的列不要放到sql里
2、像2楼那要给空值
3、拼sql,不要使用参数化

 回到顶部
帅哥哟,离线,有人找我吗?
fczhaobo
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:408 积分:4206 威望:0 精华:0 注册:2017/3/24 15:10:00
  发帖心情 Post By:2021/1/20 10:16:00 [只看该作者]

    Dim cmd As new SQLCommand
    cmd.C-
    cmd.C-ommandText = "In-sert Into WXUsers (openid,nickname,sex,city,country,province,headimgurl,groupid,remark,language,tagid_list,subscribe_time) Values('" & jo("openid") & "','" & jo("nickname") & "','" & jo("sex") & "','" & jo("city") & "','" & jo("country") & "','" & jo("province") & "','" & jo("headimgurl") & "','" & jo("groupid") & "','" & jo("remark") & "','" & jo("language") & "','" & jo("tagid_list") & "','" & jo("subscribe_time") & "')"
    cmd.ExecuteNonQuery

我快写崩溃了,还是出错


 回到顶部
帅哥哟,离线,有人找我吗?
fczhaobo
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:408 积分:4206 威望:0 精华:0 注册:2017/3/24 15:10:00
  发帖心情 Post By:2021/1/20 10:17:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:6878769.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111427 积分:567211 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/1/20 10:21:00 [只看该作者]

dim sql as string = "In-sert Into WXUsers ("
dim vas as string = "Values("
if jo("openid") isnot nothing then
sql = sql & "openid,"
vas = vas & "'" & jo("openid").tostring() & "',"
end if
if jo("nickname") isnot nothing then
sql = sql & "nickname,"
vas = vas & "'" & jo("nickname").tostring() & "',"
end if
……
sql = sql.trim(",")
vas vas .trim(",")
sql =sql & ") " & vas & ")"
msgbox(sql)
 cmd.C-ommandText = sql

 回到顶部