以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]open qq 连接问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=88992) |
-- 作者:viking -- 发布时间:2016/8/13 2:03:00 -- [求助]open qq 连接问题 自己按照帮助测试了一下,出现以下问题: 使用自定义用户 客户端和服务端都在本机 ip:127.0.0.1 ping ip 可以收到数据 已加入mes测试,可以收到登陆用户 已启动server 报错: .NET Framework 版本:2.0.50727.5485 Foxtable 版本:2016.7.23.1 错误所在事件:项目,Server 详细错误信息: 索引超出了数组界限。 UserLogging中代码和帮助一样 Dim pts() As String = e.UserName.Split(".") MessageBox.Show(e.UserName) Dim dr1 As DataRow dr1 = DataTables("Users").Find("Group = \'" & pts(0) & "\' And Name = \'" & pts(1) & "\'") If dr1 Is Nothing Then \'判断此用户不存在 e.Message = "用户名错误!" \'返回给登录者的提示信息 Return End If If dr1("Password") <> e.Password Then \'如果密码错误 e.Message = "登录密码错误!" \'返回给登录者的提示信息 Return End If e.Success = True \'允许用户登录 求帮助!!!谢谢 [此贴子已经被作者于2016/8/13 16:45:26编辑过]
|
-- 作者:cbt -- 发布时间:2016/8/13 7:53:00 -- 索引超出了数组界限 这个提示,你试试
pts.Length 看看这个,超出了索引,
Dim pts() As String = e.UserName.Split(".") MessageBox.Show(e.UserName) if pts.length <2 then \'判断长度 return end if Dim dr1 As DataRow dr1 = DataTables("Users").Find("Group = \'" & pts(0) & "\' And Name = \'" & pts(1) & "\'") If dr1 Is Nothing Then \'判断此用户不存在 e.Message = "用户名错误!" \'返回给登录者的提示信息 Return End If If dr1("Password") <> e.Password Then \'如果密码错误 e.Message = "登录密码错误!" \'返回给登录者的提示信息 Return End If
e.Success = True \'允许用户登录 |
-- 作者:viking -- 发布时间:2016/8/13 16:48:00 -- 不报错了,但是还是登录失败: 规定时间内未获服务器响应! 这个pts.length 怎么会小于2? [此贴子已经被作者于2016/8/13 16:51:41编辑过]
|
-- 作者:Hyphen -- 发布时间:2016/8/13 17:01:00 -- 客户端登录代码看看 http://www.foxtable.com/webhelp/scr/2972.htm
|
-- 作者:viking -- 发布时间:2016/8/13 17:05:00 -- 登陆按钮部分代码 全局代码赋值 _UserTname = dr("Tname") _UserRoles = dr("Roles") _UserGsbm = dr("Gsbm") _Userpassword = dr("password") \'以下为实验openQQ测试,需要修改 QQClient.ServerIP = "127.0.0.1" QQClient.ServerPort = 52177 QQClient.UserName = _UserName QQClient.Password = _Userpassword If QQClient.Start() = True Dim msg As String = "恭喜,OpenQQ登录成功!" If QQClient.ServerMessage > "" Then msg = msg & QQClient.ServerMessage End If PopMessage(msg,"提示",PopiconEnum.Infomation,5) Else PopMessage("QQClient登录失败,原因:" & vbcrlf & QQClient.ServerMessage,"提示",PopiconEnum.Error,5) End If \'以上为实验openQQ测试,需要修改
[此贴子已经被作者于2016/8/13 17:06:09编辑过]
|
-- 作者:cbt -- 发布时间:2016/8/13 21:25:00 -- 它默认的是 QQClient.UserName = e.Form.Controls("cmbDepartment").Value & "." & e.Form.Controls("txtUserName").Value \'指定登录用户名 用. 来链接 部门 和 登录名, 所以,你那边没有部门,需要修改一下,
实在不行,就上传实例 [此贴子已经被作者于2016/8/13 21:39:37编辑过]
|
-- 作者:大红袍 -- 发布时间:2016/8/14 12:34:00 -- 改一改服务器端的登录代码
MessageBox.Show(e.UserName) Dim dr1 As DataRow dr1 = DataTables("Users").Find("Name = \'" & e.UserName & "\'") If dr1 Is Nothing Then \'判断此用户不存在 e.Message = "用户名错误!" \'返回给登录者的提示信息 Return End If If dr1("Password") <> e.Password Then \'如果密码错误 e.Message = "登录密码错误!" \'返回给登录者的提示信息 Return End If
|
-- 作者:viking -- 发布时间:2016/8/14 21:50:00 -- 规定时间内未获得服务器响应! 不报错了,明白报错的原因了,要求服务器查找对应的Group造成的! 但还是没有响应。。。。
[此贴子已经被作者于2016/8/14 21:56:28编辑过]
|
-- 作者:viking -- 发布时间:2016/8/14 22:34:00 -- 问题解决了,代码后面没有清除干净,导致与运行其他代码造成的,删除后恢复正常!可以登录了 |