Foxtable(狐表)用户栏目专家坐堂 → SQL server用参数化报错


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

主题:SQL server用参数化报错

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


加好友 发短信
等级:六尾狐 帖子:1388 积分:9272 威望:0 精华:0 注册:2020/11/4 22:15:00
SQL server用参数化报错  发帖心情 Post By:2025/3/24 9:03:00 [只看该作者]

SQGL server用参数化
Dim SqGl = "SelecGt  a.单号,a.客户,b.单号,b.料号,c.用户ID
 from 表A  AS    
a    
INNER JOIN 表B  AS    b   on    a.单号 =b.单号
INNER JOIN 表c   AS    c   on    c.用户ID =@c.用户ID "    
报错提示:没有@c.用户ID,如何改?

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:113015 积分:575474 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/3/24 9:07:00 [只看该作者]

这个不合理。表C和其它表是通过什么列关联的?

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


加好友 发短信
等级:六尾狐 帖子:1388 积分:9272 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2025/3/24 9:34:00 [只看该作者]

    Dim SqGl2 = "SelecGt   " & _
    "a.*, b.编号, b.类型,b.名称,c.关系ID " & _ 
    "From  主表_tb as  a  " & _ 
    "Join  主表A_tb  as  b  " & _ 
    "On  (a.编号 = b.编号) " & _ 
    "LEFT JOIN  用户表 as  c " & _
    "ON   b.用户ID = c.用户ID " & _
    " Where " & _ 
    "c.关系ID = '" & _关系ID & "'  ;" ' SQL带参数,防止SQL注入
    Dim dt2 As System.Data.DataTable = db.ExecuteDataSet(Sql2, HySql.ParameterPair.GetPair("c.关系ID", __关系ID)).Tables(0)
改为下面,报错
 Dim SqGl2 = "SelecGt   " & _
    "a.*, b.编号, b.类型,b.名称,c.关系ID " & _ 
    "From  主表_tb as  a  " & _ 
    "Join  主表A_tb  as  b  " & _ 
    "On  (a.编号 = b.编号) " & _ 
    "LEFT JOIN  用户表 as  c " & _
    "ON   b.用户ID = c.用户ID " & _
    " Where " & _ 
    "c.关系ID = @c.关系ID  ;" ' SQL带参数,防止SQL注入
    Dim dt2 As System.Data.DataTable = db.ExecuteDataSet(Sql2, HySql.ParameterPair.GetPair("c.关系ID", __关系ID)).Tables(0)


 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:113015 积分:575474 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/3/24 9:38:00 [只看该作者]

   "c.关系ID = @关系ID  ;" ' SQL带参数,防止SQL注入

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


加好友 发短信
等级:六尾狐 帖子:1388 积分:9272 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2025/3/24 10:09:00 [只看该作者]

改为执行报错
'.' 附近有语法错误。
必须声明标量变量 "@关系ID"。

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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


[此贴子已经被作者于2025/3/24 11:54:44编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1388 积分:9272 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2025/3/24 11:08:00 [只看该作者]

 Dim SqGl2 = "SelecGt   " & _
    "a.*, b.编号, b.类型,b.名称,c.关系ID " & _ 
    "From  主表_tb as  a  " & _ 
    "Join  主表A_tb  as  b  " & _ 
    "On  (a.编号 = b.编号) " & _ 
    "LEFT JOIN  用户表 as  c " & _
    "ON   b.用户ID = c.用户ID " & _
    " Where " & _ 
    "c.关系ID = @c.关系ID   And (审核='未审核')    And (a.日期   BETWEEN DATE_SUB(NOW(), INTERVAL 2 MONTH) AND NOW() )   ;" ' 
    Dim dt2 As System.Data.DataTable = db.ExecuteDataSet(Sql2, HySql.ParameterPair.GetPair("c.关系ID", __关系ID)).Tables(0)
上面代码执行后,报错提示下面,如何改正确?
'?' 附近有语法错误。

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:113015 积分:575474 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/3/24 11:11:00 [只看该作者]

    "c.关系ID = ?   And (审核='未审核')    And (a.日期   BETWEEN DATE_SUB(NOW(), INTERVAL 2 MONTH) AND NOW() )   ;" ' 
    Dim dt2 As System.Data.DataTable = db.ExecuteDataSet(Sql2, HySql.ParameterPair.GetPair("关系ID", __关系ID)).Tables(0)

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


加好友 发短信
等级:六尾狐 帖子:1388 积分:9272 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2025/3/24 11:43:00 [只看该作者]

报错
'?' 附近有语法错误。

 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:113015 积分:575474 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/3/24 11:55:00 [只看该作者]

"c.关系ID = @关系ID   And (审核='未审核')    And (a.日期   BETWEEN DATE_SUB(NOW(), INTERVAL 2 MONTH) AND NOW() )   ;" ' 
    Dim dt2 As System.Data.DataTable = db.ExecuteDataSet(Sql2, HySql.ParameterPair.GetPair("关系ID", __关系ID)).Tables(0)


 回到顶部