以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]判断语句不执行 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=94329) |
-- 作者:铜豆 -- 发布时间:2016/12/21 11:27:00 -- [求助]判断语句不执行 Dim Arys As List(Of String()) Arys = DataTables("行政级别").GetValues("省|市") Dim drs As List(Of DataRow) drs = DataTables("商务通对话表").Select("") For Each dr As DataRow In drs For Each Ary As String() In Arys If dr("IP定位") Like " * Ary(1) * " Then dr("市") = Ary(1) End If Next Next
[此贴子已经被作者于2016/12/21 11:34:55编辑过]
|
-- 作者:有点色 -- 发布时间:2016/12/21 11:34:00 --
If dr("IP定位") Like "*" & Ary(1) & "*" Then |
-- 作者:铜豆 -- 发布时间:2016/12/21 11:50:00 -- 老师,上述代码可以修成用FIND 方法查找引用吗? |
-- 作者:有点色 -- 发布时间:2016/12/21 12:02:00 -- 不可以。 |
-- 作者:铜豆 -- 发布时间:2016/12/21 12:31:00 -- If e.DataCol.Name = "IP定位" Then Dim Arys As List(Of String()) Arys = DataTables("行政级别").GetValues("省|市") Dim drs As List(Of DataRow) drs = DataTables("商务通对话表").Select("") For Each dr As DataRow In drs For Each Ary As String() In Arys If dr("IP定位") Like "*" & Ary(0) & "*" Then dr("省") = Ary(0) End If If dr("IP定位") Like "*" & Ary(1) & "*" Then dr("市") = Ary(1) End If Next Next End If 老师运行这段代码速度有点慢150行要40秒左右,有没有什么方法可以快点,我代码是放在DataColChanged事件中
[此贴子已经被作者于2016/12/21 12:33:12编辑过]
|
-- 作者:blackzhu -- 发布时间:2016/12/21 13:12:00 -- 你都几层遍历了. |
-- 作者:blackzhu -- 发布时间:2016/12/21 13:17:00 -- 这样改改吧! If e.DataCol.Name = "IP定位" Then Dim dr As DataRow = DataTables("行政级别").Find("省 like \'*" & e.DataRow("IP定位") & "*\'") If dr IsNot Nothing Then e.DataRow("省") = dr("省") End If End If |
-- 作者:铜豆 -- 发布时间:2016/12/21 13:17:00 -- 有改进方法吗? |
-- 作者:铜豆 -- 发布时间:2016/12/21 13:22:00 -- 老师省是段语句,IP是长语句,*不能在后面哦 |
-- 作者:blackzhu -- 发布时间:2016/12/21 13:30:00 -- If e.DataCol.Name = "IP定位" Then Dim Arys As List(Of String()) Arys = DataTables("行政级别").GetValues("省|市") Dim str As String = e.DataRow("IP定位").tostring For Each Ary As String() In Arys If str.Contains(Ary(0)) The e.DataRow("省") = Ary(0) End If Next End If
[此贴子已经被作者于2016/12/21 13:30:35编辑过]
|