以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [原创]高效问题分享:字典的键和值设为DataRow类型的应用体会-----能大大提高数据更新的速度 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=145653) |
-- 作者:ahui010 -- 发布时间:2020/2/3 18:21:00 -- [原创]高效问题分享:字典的键和值设为DataRow类型的应用体会-----能大大提高数据更新的速度 在字典中,定义是: 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编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/2/3 20:26:00 -- 多谢分享。可以看做是查询与赋值并存帮助的扩展应用 |