以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 高效给临时列赋值 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=161835) |
-- 作者:tld -- 发布时间:2021/3/31 11:02:00 -- 高效给临时列赋值 老师好。窗体中的一个表tb1,有临时列【委托单位】。目前我有两种方法给委托单位列赋值:第一,通过委托编号与tables(“流水”)建立关联;第二,遍历tb1中所有行,通过委托编号, SQLfind在流水表中查找对应的行,取出委托单位后赋值。 第一种方法,流水表必须加载相应的行,关联才有效;第二种方法效率太低,需要等待的时间达十多秒,太慢。请教老师,有没有更好的方法给tb1中的 委托单位 列赋值? 谢谢!!!
|
-- 作者:有点蓝 -- 发布时间:2021/3/31 11:10:00 -- 通过表tb1对应的委托编号,一次性把所有【委托单位】查询出来,然后赋值 |
-- 作者:tld -- 发布时间:2021/3/31 15:03:00 -- 老师,我用的下面的代码实现 , 还有更好的方法吗? 您说的一次性导入 , 我还是没有理解 谢谢! Dim lis_wtbh As List(of String) = dtb1.GetValues("委托编号") Dim drs As List(of DataRow) = DataTables("流水").SQLSelect("[委托编号] In (\'" & String.Join("\',\'",lis_wtbh) & "\')") Dim lis_dw As new List(of String) Dim lis_bfl As new List(of Single) Dim lis_bh As new List(of String) For Each d As DataRow In drs lis_bh.Add(d("委托编号")) lis_dw.add(d("委托单位")) Next For Each dr As DataRow In dtb1.DataRows Dim bh As String = dr("委托编号") For i As Integer = 0 To lis_bh.Count - 1 If bh = lis_bh(i) Then dr("委托单位") = lis_dw(i) Exit For End If Next Next [此贴子已经被作者于2021/3/31 15:04:01编辑过]
|
-- 作者:有点蓝 -- 发布时间:2021/3/31 15:08:00 -- 就是上面的意思 |