Foxtable(狐表)用户栏目专家坐堂 → [求助] 修改代码


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

主题:[求助] 修改代码

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


加好友 发短信
等级:童狐 帖子:242 积分:2235 威望:0 精华:0 注册:2011/8/16 22:33:00
[求助] 修改代码  发帖心情 Post By:2013/11/24 14:19:00 [只看该作者]

“Users” 表中有个 “是否在线” 的列 想在内部通信中的用户列表的用户前加个是否在线(True 或 False)
请帮忙修改下代码

Dim cmd,cmd1 As New SQLCommand
Dim dt As DataTable
Dim lst As WinForm.ListBox = Forms("内部通讯").Controls("ListBox1")
lst.ComboList = ""
cmd.C
cmd.CommandText = "SELECT DISTINCT Name From {Users}"
dt = cmd.ExecuteReader()
For Each dr As DataRow In dt.Datarows
    cmd1.C
    cmd1.CommandText = "Select * From {内部通讯} Where [发送者] = '" & dr("Name") & "' And [接收者] = '" & _UserName & "' And [接收时间] Is NULL"
    Dim dt1 As DataTable
    dt1 = cmd1.ExecuteReader
    If dr("Name") <> _UserName And dr("Name") <> "待机模式" And dr("Name") <> "管理员" Then  ' 不加载登录用户列表
        lst.Items.Add(dr("Name") & "(" & dt1.DataRows.Count & ")")
    End If
Next
If Lst.Items.Count > 0 Then
    lst.SelectedIndex = 0
End If
图片点击可在新窗口打开查看此主题相关图片如下:捕获22.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/11/24 20:09:00 [只看该作者]

 自己改一下。

Dim cmd,cmd1 As New SQLCommand
Dim dt As DataTable
Dim lst As WinForm.ListBox = Forms("内部通讯").Controls("ListBox1")
lst.ComboList = ""
cmd.C
cmd.CommandText = "SELECT DISTINCT Name From {Users}"
dt = cmd.ExecuteReader()
For Each dr As DataRow In dt.Datarows
    cmd1.C
    cmd1.CommandText = "Select * From {内部通讯} Where [发送者] = '" & dr("Name") & "' And [接收者] = '" & _UserName & "' And [接收时间] Is NULL"
    Dim dt1 As DataTable
    dt1 = cmd1.ExecuteReader
    If dr("Name") <> _UserName And dr("Name") <> "待机模式" And dr("Name") <> "管理员" Then  ' 不加载登录用户列表
        lst.Items.Add("(" & dr("是否在线") & ")" & dr("Name") & "(" & dt1.DataRows.Count & ")")
    End If
Next
If Lst.Items.Count > 0 Then
    lst.SelectedIndex = 0
End If

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


加好友 发短信
等级:童狐 帖子:242 积分:2235 威望:0 精华:0 注册:2011/8/16 22:33:00
  发帖心情 Post By:2013/11/25 9:58:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:捕获33.png
图片点击可在新窗口打开查看

什么问题?
数据源是SQL2005  “Users” 表中真的有个 “是否在线” 的罗辑列呀!


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/11/25 10:03:00 [只看该作者]

你循环你查询出来的表,都有那些列 看看吧. 检查一下.

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/11/25 10:03:00 [只看该作者]

你有这个列,但是:

 

cmd.CommandText = "SELECT DISTINCT Name From {Users}"
dt = cmd.ExecuteReader()

 

没有包括包括这个列,生成的dt只有name这一列。

 

重新整理一下自己的逻辑,然后再重写代码吧。

[此贴子已经被作者于2013-11-25 10:03:29编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/11/25 19:57:00 [只看该作者]

 试试这样

Dim cmd,cmd1 As New SQLCommand
Dim dt As DataTable
Dim lst As WinForm.ListBox = Forms("内部通讯").Controls("ListBox1")
lst.ComboList = ""
cmd.C
cmd.CommandText = "SELECT DISTINCT Name, 是否在线 From {Users}"
dt = cmd.ExecuteReader()
For Each dr As DataRow In dt.Datarows
    cmd1.C
    cmd1.CommandText = "Select * From {内部通讯} Where [发送者] = '" & dr("Name") & "' And [接收者] = '" & _UserName & "' And [接收时间] Is NULL"
    Dim dt1 As DataTable
    dt1 = cmd1.ExecuteReader
    If dr("Name") <> _UserName And dr("Name") <> "待机模式" And dr("Name") <> "管理员" Then  ' 不加载登录用户列表
        lst.Items.Add("(" & dr("是否在线") & ")" & dr("Name") & "(" & dt1.DataRows.Count & ")")
    End If
Next
If Lst.Items.Count > 0 Then
    lst.SelectedIndex = 0
End If

 回到顶部