以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  SQLCommand  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=185221)

--  作者:飘过的巨蟹座
--  发布时间:2023/2/10 20:49:00
--  SQLCommand
        cmd.CommandText ="Sel ect Count(*) From {用户表} Where 用户名 = \'" & UserNa me & "\' And 密码 = \'" & EncryptText(Password,"123","321") & "\' and 启用 = \'True\'"
        If cmd.ExecuteScalar = 1 Then
            cmd.CommandText = "Se lect 用户组,姓名 from {用户表} W here 用户名 = \'" & UserName & "\'"
            Dim Values = cmd.ExecuteValues
            UserGroup = Values("用户组")
            xm = Values("姓名")
            Verified  = True
        End If

这个蓝色的赋值,如何能在没有黄色字段的代码下完成赋值呢?
[此贴子已经被作者于2023/2/10 21:02:07编辑过]

--  作者:飘过的巨蟹座
--  发布时间:2023/2/10 20:58:00
--  
好奇怪,我用这个代码就找不到
cmd.CommandText = "Se lect 用户组,姓名 from {用户表} Where 用户名 = \'" & UserName & "\' And 密码 = \'" & EncryptText(Password,"123","321") & "\' and 启用 = \'True\'"
If cmd.ExecuteScalar = 1 Then
           Dim Values = cmd.ExecuteValues
            UserGroup = Values("用户组")
            xm = Values("姓名")
            Verified  = True
        End If
[此贴子已经被作者于2023/2/10 22:07:56编辑过]

--  作者:飘过的巨蟹座
--  发布时间:2023/2/10 22:19:00
--  
为什么返回的MessageBox.Show(Values.Count)值是2?我直接把用户名 = \'" & UserName & "\' And 密码 = \'" & EncryptText(Password,"123","321") & "\' and 启用 = \'True\'"换成值只有一行结果
[此贴子已经被作者于2023/2/10 22:25:05编辑过]

--  作者:有点蓝
--  发布时间:2023/2/11 8:31:00
--  
sql如果有返回值,返回几个列,Values.Count就有几个。

            cmd.CommandText = "Se lect 用户组,姓名 from {用户表} W here 用户名 = \'" & UserName & "\'  And 密码 = \'" & EncryptText(Password,"123","321") & "\' and 启用 = True"
            Dim Values = cmd.ExecuteValues
if Values.Count > 0 then \'先判断是否有返回值
If Values("用户组").ToString <> Nothing Then ‘再判断某个列是否有值
            UserGroup = Values("用户组")
endif
If Values("姓名").ToString <> Nothing Then ‘再判断某个列是否有值
            xm = Values("姓名")
endif
            Verified  = True
endif