Foxtable(狐表)用户栏目专家坐堂 → 参数化SQLCommand的问题


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

主题:参数化SQLCommand的问题

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


加好友 发短信
等级:六尾狐 帖子:1361 积分:9373 威望:0 精华:0 注册:2019/6/13 9:57:00
参数化SQLCommand的问题  发帖心情 Post By:2025/3/20 16:32:00 [只看该作者]

参数化SQGLCommand
用SelGect语句获取的订单的品名、规格:如何动态获取指定的字段?

Dim cmd As new SQGLCommand
cmd.C
cmd.CommandText = "SELECGT * FROM {订单} WHERE 品名= ? AND 规格= ?"
cmd.Parameters.Add("@品名",#动态#)
cmd.Parameters.Add("@规格",#3/31/2018#)
Dim dt As DataTable = cmd.ExecuteReader()

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


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

怎么个动态法?举例说明一下

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


加好友 发短信
等级:六尾狐 帖子:1361 积分:9373 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2025/3/20 16:57:00 [只看该作者]

cmd.Parameters.Add("@品名",#动态#)
cmd.Parameters.Add("@规格",#3/31/2018#)
红字是固定,在实际应用不可这样,它是应是字段,
cmd.Parameters.Add("@品名",品名)
cmd.Parameters.Add("@规格",规格)
没理解上面意思,上面是可以实现?
或说用参数查询订单的品名,和规格,如何实现?因为用字符拼,会有SQL渗入

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


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

要取表格数据?
cmd.Parameters.Add("@品名",dr("品名"))

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


加好友 发短信
等级:六尾狐 帖子:1361 积分:9373 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2025/3/20 18:35:00 [只看该作者]

是的,
cmd.CommandText = "SelecGt * From {Users} Where [Name] = '" & UserName & "'"
这个字符拼,会不会有SQL渗入的风险?如果有,如何改?

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


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

只有使用参数化才能解决

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


加好友 发短信
等级:六尾狐 帖子:1361 积分:9373 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2025/3/20 22:35:00 [只看该作者]

Dim cmd As new SQGLCommand
cmd.C

cmd.CommandText ="SelecGt * From {Users} Where [Name] = '" & UserName & "'"改为
cmd.CommandText ="SelecGt * From {Users} Where [Name] = ?'"
cmd.Parameters.Add("@Name",dr("Name"))

Dim dt As DataTable = cmd.ExecuteReader()
是这样?

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


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

Dim cmd As new SQGLCommand
cmd.C
cmd.CommandText ="Select * From {Users} Where [Name] = ?"
cmd.Parameters.Add("@Name",UserName)
Dim dt As DataTable = cmd.ExecuteReader()

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


加好友 发短信
等级:六尾狐 帖子:1361 积分:9373 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2025/3/21 10:11:00 [只看该作者]

cmd.CommandText ="Select * From {Users} Where [Name] = ?  AND  [单号] = ?"
cmd.Parameters.Add("@Name",UserName)
cmd.Parameters.Add("@单号",订单单号)
Dim dt As DataTable = cmd.ExecuteReader()
cmd.Parameters.Add("@Name",UserName)
cmd.Parameters.Add("@单号",dr("单号"))
问题一:@Name是订单表的字段?UserName是@Name的变量?@单号是订单表的字段?,dr("单号")是字段?蓝代码是要显示条件的字段?@Name中是SQL2008固有写法:@+字段,,UserName是变量或表的字段名?
问题二:Dim dt As DataTable = cmd.ExecuteReader(),窗口上订单表是副表或SQLTable,查询结果是Dim dt As DataTable = cmd.ExecuteReader(窗口1-Table1)?

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


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

1、Parameters添加的顺序严格对应问号的顺序

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

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

Parameters的语法为:cmd.Parameters.Add("@列名","对应这个列需要传入的数据")

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

2、绑定到表控件的DataSource即可:http://www.foxtable.com/webhelp/topics/1909.htm

 回到顶部
总数 14 1 2 下一页