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


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

主题:条件失效问题

帅哥,在线噢!
lin98
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1422 积分:9506 威望: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的全局变量
上面代码,在切换用户后,蓝代码失效,如何改

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


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


 回到顶部
帅哥,在线噢!
lin98
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

没看明白,具体如何改?

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


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

Dim SqGGl2 = "selecGGt A.* , B.关系ID  from  订单表  A        Inner Join     用户表  B   ON  A.用户ID =B.用户ID  where 关系ID='" & _用户ID & "'"

 回到顶部
帅哥,在线噢!
lin98
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1422 积分:9506 威望: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收集来,如何改为上面需求?


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


加好友 发短信
等级:超级版主 帖子:113213 积分:576494 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/4/2 9:53: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

 回到顶部
帅哥,在线噢!
lin98
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

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

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


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

Dim SqGGlOrder2 = "selec* FROM 订单表  where 用户ID in (select 用户ID from 用户表 用户ID = @用户ID) or 关系ID in (select 用户ID from 用户表 用户ID = @用户ID) 

 回到顶部
帅哥,在线噢!
lin98
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1422 积分:9506 威望: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编辑过]

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


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

下面几句代码就够了

                   
Dim SqGGlOrder2 = "selec* FROM 订单表  where 用户ID in (select 用户ID from 用户表 用户ID = @用户ID) or 关系ID in (select 用户ID from 用户表 用户ID = @用户ID) "

                    Dim dtOrder2 As DataTable = db.ExecuteDataSet(SGGqlOrder2, HySqGGl.ParameterPair.GetPair("@用户ID", _用户ID)).Tables(0)
                    窗口_Table1.DataSource = dtOrder2

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