以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  字典遍历问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=80147)

--  作者:lzzhx
--  发布时间:2016/1/17 10:53:00
--  字典遍历问题
请教老师:如何遍历这样的字典

Dictionary(Of String, List(Of String))

--  作者:lzzhx
--  发布时间:2016/1/17 11:10:00
--  

dim 字典 As New Dictionary(Of String, List(Of String))
.........
For Each 键的集合 As String In 字典.Keys
    MessageBox.Show(键的集合)
    For Each 值的集合 As List(of String) In gs_dicConnTableNames.values
        MessageBox.Show(值的集合)
    Next
Next

上面的代码不执行,请问怎么修改?

--  作者:lzzhx
--  发布时间:2016/1/17 11:16:00
--  
请大红袍老师看看
--  作者:大红袍
--  发布时间:2016/1/17 11:23:00
--  

Dim dic As New Dictionary(Of String, List(Of String))
Dim l1 As new List(Of String)
Dim l2 As new List(Of String)
l1.add("1")
l1.add("2")
l2.add("33")
l2.add("44")

dic.add("list1", l1)
dic.add("list2", l2)

For Each key As String In dic.Keys
    for each s as string in dic(key)
        output.show(key & "   " & s)
    next
next


--  作者:lzzhx
--  发布时间:2016/1/17 11:59:00
--  
谢谢老师
--  作者:lzzhx
--  发布时间:2016/1/17 12:13:00
--  
再请教一个问题:

For Each dt As DataTable In DataTables  可获得已加载的数据表的信息
----------------------------------------------------------------
For Each dt As DataTable In DataTables
    If dt.Type=1 Then  \'内部数据源
       \' .......                                            可获得内部数据源的相关信息
    End If
Next
--------------------------------------------------------------
For Each cn As Connection In Connections  ....... 可获得外部数据库的所有表的相关信息
 
如何获得下面信息:
1.已添加到数据源中的外部数据表信息及字段信息
2.已添加到数据源中但未加载的外部数据表信息及字段信息


--  作者:大红袍
--  发布时间:2016/1/17 16:37:00
--  

获取表名信息

 

Dim lst As List(Of String)
lst = Connections("nwnd").GetTableNames
For Each
nm As String In lst
    Output.Show(nm)

Next


--  作者:大红袍
--  发布时间:2016/1/17 16:44:00
--  

可以根据临时表获取表信息

 

Dim lst As List(Of String)
lst = Connections("nwnd").GetTableNames
For Each nm As String In lst
    Dim cmd As new SQLCommand
    cmd.ConnectionName = "nwnd"
    cmd.CommandText = "select * fr om {" & nm & "} where 1=2"
    Dim dt As DataTable = cmd.ExecuteReader
    For Each dc As DataCol In dt.datacols
        output.show(dc.name & "  " & dc.datatype.name)
    Next
Next

[此贴子已经被作者于2016/1/17 16:44:25编辑过]