Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共10 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:SQL server用参数化报错

1楼
lin98 发表于: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楼
有点蓝 发表于:2025/3/24 9:07:00
这个不合理。表C和其它表是通过什么列关联的?
3楼
lin98 发表于: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楼
有点蓝 发表于:2025/3/24 9:38:00
   "c.关系ID = @关系ID  ;" ' SQL带参数,防止SQL注入
5楼
lin98 发表于:2025/3/24 10:09:00
改为执行报错
'.' 附近有语法错误。
必须声明标量变量 "@关系ID"。
6楼
有点蓝 发表于:2025/3/24 10:17:00

[此贴子已经被作者于2025/3/24 11:54:44编辑过]
7楼
lin98 发表于: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楼
有点蓝 发表于: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)
9楼
lin98 发表于:2025/3/24 11:43:00
报错
'?' 附近有语法错误。
10楼
有点蓝 发表于: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)

共10 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .02344 s, 2 queries.