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


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

主题:参数化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()

 回到顶部
帅哥哟,离线,有人找我吗?
lgz518
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | 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渗入

 回到顶部
帅哥哟,离线,有人找我吗?
lgz518
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | 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渗入的风险?如果有,如何改?

 回到顶部
帅哥哟,离线,有人找我吗?
lgz518
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | 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()
是这样?

 回到顶部
帅哥哟,离线,有人找我吗?
lgz518
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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)?

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


加好友 发短信
等级:六尾狐 帖子:1361 积分:9373 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2025/3/21 10:52:00 [显示全部帖子]

SQGLTable
Dim db = HySqGl.DataBaseFactory.CreateDatabase("xdb") '
Dim SqGl = "selecGt * from p_tb;" '
Dim dt As system.data.DataTable = db.ExecuteDataSet(SqGl).Tables(0)
dt.TableName = "p_tb"
Dim t As Table = e.Form.Controls("Table1").Table
t.datasource = dt.Copy 

上面代码,改为下面代码报错:不是dt.BuildDataSource(),如何解决?

Dim db As new SQGLCommand
db.C
db.CommandText = "SELECGT * FROM {p_tb} "
Dim dt As DataTable = db.ExecuteReader()
Tables("窗口1_Table1").DataSource = dt.BuildDataSource()

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


加好友 发短信
等级:六尾狐 帖子:1361 积分:9373 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2025/3/21 12:26:00 [显示全部帖子]

'SQGLTable,SQGL2008,用下面代码都无没保存,如何解决?
DataTables("编号窗口_Table1").Save()
'DataTables("表F").Save()
MessageBox.Show("保存成功!")

 回到顶部