以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  已添加了具有相同键的项  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=189787)

--  作者:tld
--  发布时间:2023/12/26 8:59:00
--  已添加了具有相同键的项
老师好。启动IMClient时,出现错误:已添加了具有相同键的项。怎么解决呢?这个错误是重启了服务器,然后重启项目后出现的。谢谢老师!
--  作者:有点蓝
--  发布时间:2023/12/26 9:18:00
--  
应该是服务端添加的好友名称重复了
--  作者:tld
--  发布时间:2023/12/26 10:06:00
--  
老师,我没有添加任何好友啊,只是重启了服务器
[此贴子已经被作者于2023/12/26 10:14:48编辑过]

--  作者:有点蓝
--  发布时间:2023/12/26 10:15:00
--  
OpenQQ服务端事件UserLogging代码发上来看看
--  作者:tld
--  发布时间:2023/12/26 10:23:00
--  
Dim pts() As String = e.UserName.Split(".")
Dim dr1 As DataRow
dr1 = DataTables("用户").Find("部门 = \'" & pts(0) & "\' And 姓名 = \'" & pts(1) & "\'")
If dr1 Is Nothing  Then \'判断此用户不存在
    e.Message  = "用户名错误!" \'返回给登录者的提示信息
    Return
End If
If dr1("密码") <> e.Password Then \'如果密码错误
    e.Message  = "登录密码错误!" \'返回给登录者的提示信息
    Return
End If
e.Success = True \'允许用户登录
\'添加所有同事为好友
For Each dr2 As DataRow In DataTables("用户").DataRows
    Dim nm As String =  dr2("部门") & "." & dr2("姓名")
    If nm <> e.UserName Then \'如果不是登录者本人
        e.Buddies.Add(nm)
    End If
Next

--  作者:有点蓝
--  发布时间:2023/12/26 10:31:00
--  
下面代码应该有重复的好友,试试

\'添加所有同事为好友
For Each dr2 As DataRow In DataTables("用户").DataRows
    Dim nm As String =  dr2("部门") & "." & dr2("姓名")
    If nm <> e.UserName andalso e.Buddies.Contains(nm) = false Then \'如果不是登录者本人
        e.Buddies.Add(nm)
    End If
Next