以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]列表框给表赋值  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=109143)

--  作者:天一生水
--  发布时间:2017/11/5 15:48:00
--  [求助]列表框给表赋值

我把好友的在线状态获取后在列表框显示,格式为: 组.姓名.是否在线

 

Dim s  As  String
Dim l As WinForm.ListBox = e.Form.Controls("ListBox1")
For Each bd As QQBuddy In QQClient.Buddies                     \'显示好友名和在线状态
    l.Items.Add(bd.Name & "." & IIF(bd.Online,"在线","离线"))
Next

 

我想把上述信息放入“状态表”中的[组]、[姓名]、[状态]列中,怎样给表赋值?

谢谢!

 


--  作者:有点甜
--  发布时间:2017/11/5 21:13:00
--  

Dim dt As DataTable = DataTables("表A")
For Each bd As QQBuddy In QQClient.Buddies                     \'显示好友名和在线状态
    Dim fdr As DataRow = dt.Find("组+\'.\'+姓名 = \'" & bd.Name & "\'")
    If fdr Is Nothing Then
        fdr = dt.AddNew
        fdr("组") = bd.Name.Split(".")(0)
        fdr("姓名") = bd.Name.Split(".")(1)
    End If
    fdr("状态") = IIF(bd.Online,"在线","离线")
Next


--  作者:天一生水
--  发布时间:2017/11/6 9:01:00
--  

我把代码写进菜单的SystemIdle事件,提示错误信息:

 

.NET Framework 版本:2.0.50727.8669
Foxtable 版本:2017.10.26.1
错误所在事件:SystemIdle
详细错误信息:
索引超出了数组界限。

 

在状态表的[组]列出现很多[system],如图:

 


图片点击可在新窗口打开查看此主题相关图片如下:好友.jpg
图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2017/11/6 9:52:00
--  

改一下

 

Dim dt As DataTable = DataTables("表A")
For Each bd As QQBuddy In QQClient.Buddies                     \'显示好友名和在线状态
    If bd.Name.Contains(".") Then
        Dim fdr As DataRow = dt.Find("组+\'.\'+姓名 = \'" & bd.Name & "\'")
        If fdr Is Nothing Then
            fdr = dt.AddNew
            fdr("组") = bd.Name.Split(".")(0)
            fdr("姓名") = bd.Name.Split(".")(1)
        End If
        fdr("状态") = IIF(bd.Online,"在线","离线")
    End If
Next