Foxtable(狐表)用户栏目专家坐堂 → 条件失效问题


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

主题:条件失效问题

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


加好友 发短信
等级:六尾狐 帖子:1423 积分:9511 威望:0 精华:0 注册:2020/11/4 22:15:00
条件失效问题  发帖心情 Post By:2025/4/2 8:38:00 [显示全部帖子]

用户表的字段:用户ID,姓名,关系ID
订单表 的字段:用户ID,编辑者,物料,数量

需求:当前登录的_用户ID是订单表是用户ID,按where 用户ID=查询,否则  按where 用户表的关系ID查询,关系ID=_用户ID,

Dim db = HySqGGl.DataBaseFactory.CreateDatabase("db") '
Dim SqGGl4 = ""selecGGt COUNT(*) from  用户表  Where 用户ID = _用户ID ;"
Dim dt4 As system.data.DataTable = db.ExecuteDataSet(SqGGl4).Tables(0)
Dim dr As DataRow
dr = dt4.Rows(0) '

If dr IsNot Nothing Then
 Dim SqGGl = "selecGGt * from  订单表  where 用户ID = _用户ID 
SqGGl =窗口_Table1

Else
Dim SqGGl2 = "selecGGt A.* , B.关系ID  from  订单表  A        Inner Join     用户表  B   ON  A.用户ID =B.用户ID  where 关系ID=_用户ID
SqGGl =窗口_Table1

End If


注;_用户ID是用户ID的全局变量
上面代码,在切换用户后,蓝代码失效,如何改

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


加好友 发短信
等级:六尾狐 帖子:1423 积分:9511 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2025/4/2 9:12:00 [显示全部帖子]

没看明白,具体如何改?

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


加好友 发短信
等级:六尾狐 帖子:1423 积分:9511 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2025/4/2 9:39:00 [显示全部帖子]

Dim db = HySqGGl.DataBaseFactory.CreateDatabase("db")

            ' 检查订单表中是否存在当前用户的记录
            Dim SqlCheck = "SELECGGT COUNT(*) FROM 订单表 WHERE 用户ID = @用户ID"
            Dim dtCheck As DataTable = db.ExecuteDataSet(SqGGlCheck, HySql.ParameterPair.GetPair("@用户ID", _用户ID)).Tables(0)
            Dim count As Integer = Convert.ToInt32(dtCheck.Rows(0).Item(0))

            If count > 0 Then
                ' 按用户ID查询订单表
                Dim SqGGlOrder = "SELEGGCT * FROM 订单表 WHERE 用户ID = @用户ID"
                Dim dtOrder As DataTable = db.ExecuteDataSet(SqGGlOrder, HySqGGl.ParameterPair.GetPair("@用户ID", _用户ID)).Tables(0)
                窗口_Table1.DataSource = dtOrder
            Else
                ' 从用户表中获取关系ID
                Dim SqGGlRelation = "SELECGGT 关系ID FROM 用户表 WHERE 用户ID = @用户ID"
                Dim dtRelation As DataTable = db.ExecuteDataSet(SqGGlRelation, HySqGGl.ParameterPair.GetPair("@用户ID", _用户ID)).Tables(0)
                If dtRelation.Rows.Count > 0 Then
                    Dim 关系ID As String = dtRelation.Rows(0).Item("关系ID").ToString()

                    ' 按关系ID查询订单表
                    Dim SqGGlOrder2 = "SELECGGT A.*, B.关系ID FROM 订单表 A INNER JOIN 用户表 B ON A.用户ID = B.用户ID WHERE B.关系ID = @关系ID"
                    Dim dtOrder2 As DataTable = db.ExecuteDataSet(SGGqlOrder2, HySqGGl.ParameterPair.GetPair("@关系ID", 关系ID)).Tables(0)
                    窗口_Table1.DataSource = dtOrder2
                Else
                    ' 用户表中不存在该用户,处理相应情况
                    MessageBox.Show("用户不存在。")
                End If
            End If
是否则条件没起作用,
下面是AI收集来,如何改为上面需求?


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


加好友 发短信
等级:六尾狐 帖子:1423 积分:9511 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2025/4/2 9:57:00 [显示全部帖子]

但执行失效,没报错,没显示数据,其实订单表是有数据,否则,条件没起作?

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


加好友 发短信
等级:六尾狐 帖子:1423 积分:9511 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2025/4/2 10:15:00 [显示全部帖子]

 Dim SqGGlOrder2 = "SELECGGT A.*, B.关系ID FROM 订单表 A INNER JOIN 用户表 B ON A.用户ID = B.用户ID WHERE A.用户ID = @用户ID
                    Dim dtOrder2 As DataTable = db.ExecuteDataSet(SGGqlOrder2, HySqGGl.ParameterPair.GetPair("@用户ID", _用户ID)).Tables(0)
                    窗口_Table1.DataSource = dtOrder2

单独执行,是可以查询到数据,但加上条件就失效?不知为什么



If dr IsNot Nothing Then
 Dim SqGGl = "selecGGt * from  订单表  where 用户ID = _用户ID 
SqGGl =窗口_Table1
 Else
Dim SqGGlOrder2 = "SELECGGT A.*, B.关系ID FROM 订单表 A INNER JOIN 用户表 B ON A.用户ID = B.用户ID WHERE A.用户ID = @用户ID
                    Dim dtOrder2 As DataTable = db.ExecuteDataSet(SGGqlOrder2, HySqGGl.ParameterPair.GetPair("@用户ID", _用户ID)).Tables(0)
                    窗口_Table1.DataSource = dtOrder2
[此贴子已经被作者于2025/4/2 11:11:34编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1423 积分:9511 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2025/4/2 11:25:00 [显示全部帖子]

条件是用不了?
听说用in 相对会慢一点,会影响性能

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


加好友 发短信
等级:六尾狐 帖子:1423 积分:9511 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2025/4/2 11:49:00 [显示全部帖子]

用10楼的代码,报错,改英文下=,也报错
'=' 附近有语法错误。
'=' 附近有语法错误。

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


加好友 发短信
等级:六尾狐 帖子:1423 积分:9511 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2025/4/2 14:13:00 [显示全部帖子]

报错:列名 '关系ID' 无效。

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


加好友 发短信
等级:六尾狐 帖子:1423 积分:9511 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2025/4/2 14:30:00 [显示全部帖子]

这个关键列,是用户表,这个只用双表查询,上面查询这样很复杂,

如果条件可以就简单,可以前面条件无识别,是狐表的规则限制,还是IF的规则的问题,

 回到顶部