Foxtable(狐表)用户栏目专家坐堂 → [求助]如何让comlist 只显示最后一个用户名称?


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

主题:[求助]如何让comlist 只显示最后一个用户名称?

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


加好友 发短信
等级:三尾狐 帖子:633 积分:4016 威望:0 精华:0 注册:2015/1/27 9:34:00
[求助]如何让comlist 只显示最后一个用户名称?  发帖心情 Post By:2015/8/18 0:13:00 [只看该作者]

初始的afterload事件代码如下

Dim str As String =GetConfigValue("保存的用户", "")
e.Form.Controls("UserName").ComboList = str

If str>"" Then
    e.Form.Controls("UserName").SelectedIndex = 0 

    Dim cmd As New SQLCommand
    Dim dt As DataTable
    Dim dr As DataRow
    cmd.C
    cmd.CommandText = "Select * Fr om {用户管理表} Where [用户名] = '" & e.Form.Controls("UserName").value & "'"
    dt = cmd.ExecuteReader
    dr = dt.DataRows(0)
    e.Form.Controls("UserPhoto").Image = GetImage(projectPath & "Attachments/" & dr("用户照片"))
End If

 

 

但是随着登录用户的增多,下拉框里面的用户名越来越多了,因此,为了只显示最后一个用户名,改动了一下,

改动后的afterload事件代码如下:

Dim str As String =GetConfigValue("保存的用户", "")
e.Form.Controls("UserName").ComboList = str.split("|")(0)
If str>"" Then
'    e.Form.Controls("UserName").SelectedIndex = 0 ,这句是原来的代码,在此已注释
    Dim cmd As New SQLCommand
    Dim dt As DataTable
    Dim dr As DataRow
    cmd.C
    cmd.CommandText = "Select * Fr om {用户管理表} Where [用户名] = '" & e.Form.Controls("UserName").value & "'"
    dt = cmd.ExecuteReader
    dr = dt.DataRows(0)
    e.Form.Controls("UserPhoto").Image = GetImage(projectPath & "Attachments/" & dr("用户照片"))
End If

 

运行错误提示:索引超出了数组界限。

 

初步怀疑就是红色部分出了问题,怎么改动?请教!

[此贴子已经被作者于2015/8/18 0:34:18编辑过]

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


加好友 发短信
等级:三尾狐 帖子:633 积分:4016 威望:0 精华:0 注册:2015/1/27 9:34:00
  发帖心情 Post By:2015/8/18 0:28:00 [只看该作者]

补充说明:UserName控件有一个初始值“请输入用户名”。

[此贴子已经被作者于2015/8/18 0:29:34编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/18 9:09:00 [只看该作者]

If str>"" Then

    e.Form.Controls("UserName").ComboList = str.split("|")(0)


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


加好友 发短信
等级:三尾狐 帖子:633 积分:4016 威望:0 精华:0 注册:2015/1/27 9:34:00
  发帖心情 Post By:2015/8/18 14:46:00 [只看该作者]

Dim str As String =GetConfigValue("保存的用户", "")
e.Form.Controls("UserName").ComboList = str
If str>"" Then
    e.Form.Controls("UserName").Combolist = str.split("|")(0)
    Dim cmd As New SQLCommand
    Dim dt As DataTable
    Dim dr As DataRow
    cmd.C
    cmd.CommandText = "Select * Fr om {用户管理表} Where [用户名] = '" & e.Form.Controls("UserName").value & "'"
    dt = cmd.ExecuteReader
    dr = dt.DataRows(0)
    e.Form.Controls("UserPhoto").Image = GetImage(projectPath & "Attachments/" & dr("用户照片"))
End If

 

是这样改撒,但是还是同样的问题


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


加好友 发短信
等级:三尾狐 帖子:633 积分:4016 威望:0 精华:0 注册:2015/1/27 9:34:00
  发帖心情 Post By:2015/8/18 14:48:00 [只看该作者]

我觉得问题就出在给combolist赋值这句代码上了,但是怎么解决就不清楚了

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/18 14:50:00 [只看该作者]

加入msgbox调试。

 

http://www.foxtable.com/help/topics/1485.htm

 


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/18 14:53:00 [只看该作者]

    cmd.CommandText = "Select * Fr om {用户管理表} Where [用户名] = '" & e.Form.Controls("UserName").value & "'"
    dt = cmd.ExecuteReader
    dr = dt.DataRows(0)
    e.Form.Controls("UserPhoto").Image = GetImage(projectPath & "Attachments/" & dr("用户照片"))

 

改成

 

    cmd.CommandText = "Select * Fr om {用户管理表} Where [用户名] = '" &  str.split("|")(0) & "'"
    dt = cmd.ExecuteReader

    If dt.DataRows.Count > 0 Then
        dr = dt.DataRows(0)
        e.Form.Controls("UserPhoto").Image = GetImage(projectPath & "Attachments/" & dr("用户照片"))

    End If

[此贴子已经被作者于2015/8/18 14:53:51编辑过]

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


加好友 发短信
等级:三尾狐 帖子:633 积分:4016 威望:0 精华:0 注册:2015/1/27 9:34:00
  发帖心情 Post By:2015/8/18 15:57:00 [只看该作者]

删除一下代码,就Ok了

 

 Dim cmd As New SQLCommand
    Dim dt As DataTable
    Dim dr As DataRow
    cmd.C
    cmd.CommandText = "Select * Fr om {用户管理表} Where [用户名] = '" & e.Form.Controls("UserName").value & "'"
    dt = cmd.ExecuteReader
    dr = dt.DataRows(0)
    e.Form.Controls("UserPhoto").Image = GetImage(projectPath & "Attachments/" & dr("用户照片"))


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


加好友 发短信
等级:三尾狐 帖子:633 积分:4016 威望:0 精华:0 注册:2015/1/27 9:34:00
  发帖心情 Post By:2015/8/18 16:05:00 [只看该作者]

谢谢!


 回到顶部