Rss & SiteMap

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

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

标题:条件失效问题

1楼
lin98 发表于: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楼
有点蓝 发表于:2025/4/2 8:41:00
http://www.foxtable.com/webhelp/topics/1284.htm
3楼
lin98 发表于:2025/4/2 9:12:00
没看明白,具体如何改?
4楼
有点蓝 发表于: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 & "'"
5楼
lin98 发表于: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楼
有点蓝 发表于: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
7楼
lin98 发表于:2025/4/2 9:57:00
但执行失效,没报错,没显示数据,其实订单表是有数据,否则,条件没起作?
8楼
有点蓝 发表于: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) 
9楼
lin98 发表于: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楼
有点蓝 发表于: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 条记录, 每页显示 10 条, 页签: [1] [2]

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

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