Foxtable(狐表)用户栏目专家坐堂 → [原创]高效问题分享:字典的键和值设为DataRow类型的应用体会-----能大大提高数据更新的速度


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

主题:[原创]高效问题分享:字典的键和值设为DataRow类型的应用体会-----能大大提高数据更新的速度

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


加好友 发短信
等级:幼狐 帖子:108 积分:1277 威望:0 精华:0 注册:2018/8/3 10:02:00
[原创]高效问题分享:字典的键和值设为DataRow类型的应用体会-----能大大提高数据更新的速度  发帖心情 Post By:2020/2/3 18:21:00 [显示全部帖子]

在字典中,定义是:
Dim 变量名 As New Dictionary(Of 键类型, 值类型)

其中:
Keys 属性 返回键的集合 
Values 属性 返回值的集合 


我的问题是如下,

如果定义成如这样:

Dim Dic1 As new Dictionary(of DataRow, Integer)

键就定义成了表格的行,我想获这个键的某一列内容是怎么办?

我试了很久,可以这样将字典键的某一列,及对应字典值找出来。

For Each dr As DataRow In dic1.Keys
      Output.show(“键的姓名列:" & dr("姓名") & "--- 对应值:" & dic1(dr))      
Next

如果定义成如这样:
Dim Dic1 As new Dictionary(of DataRow, DataRow)

字典的键和值的数据类型都是表格的行了,我试了很久,可以这样将字典键的某一列,及其对应的字典值的某一列找出来。
 

For Each dr As DataRow In dic1.Keys
      Output.show(“键的姓名列:" & dr("姓名") & "--- 对应值的姓名列:" & dic1(dr)("姓名"))      
Next
 
我本次要分享的问题,是如果将字典的键和值的数据类型都可设为表格的行,键保存老表格的行数据,值保存新表格的行数据,

如果将新表格的内容要更到新表格,用下面的语句,速度能大大的提高:

Dim Dic1 As new Dictionary(of DataRow, DataRow) ‘定义字典,键和值的数据类型都可设为表格的行

For Each dr As DataRow In  DataTables("老表格").DataRows
     Dim tr As DataRow
             tr = DataTables("新表格").sqlfind("客户ID = '" & dr(“客户ID”)& “’”)
     if tr isnot nothing then
        Dic1.add(dr,tr)  ’键为老表格的行,值为新表格的行
    end if
Next

For Each dr As DataRow In dic1.Keys
   dic1(dr)("姓名") = dr("新姓名")   ‘将值的姓名内容,赋到键的姓名列
   dic1(dr)("身份证号码") = dr("新身份证号码")
   dic1(dr)("性别") = dr("新性别")
   dic1(dr)("公司") = dr("新公司")
   dic1(dr)("发放时间") = dr("新注册时间")
Next
[此贴子已经被作者于2020/2/3 18:22:54编辑过]

 回到顶部