以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]数据列转表达式列 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=159011) |
-- 作者:huangjiacai -- 发布时间:2020/12/10 15:54:00 -- [求助]数据列转表达式列 我在项目开发这边将某一列数据列转为表达式列以后,已发布的项目那里打开项目会提示错误,这个有什么办法避免吗,因为已发布的项目是在用的,我就想做个简简单单的升级。 |
-- 作者:有点蓝 -- 发布时间:2020/12/10 16:42:00 -- 参考:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=103041 |
-- 作者:有点蓝 -- 发布时间:2020/12/10 16:43:00 -- 目前临时的解决方法只能是手工复制升级一下了 |
-- 作者:huangjiacai -- 发布时间:2020/12/11 9:18:00 -- 是不是可以遍历A表的所有行,从B表中查找关联列“列1”相匹配的行,将“列2”、“列3”的数据赋值过来呢?表A跟表B的表结构高度相似 |
-- 作者:有点蓝 -- 发布时间:2020/12/11 9:30:00 -- 参考:http://www.foxtable.com/webhelp/topics/1533.htm |
-- 作者:huangjiacai -- 发布时间:2020/12/11 10:27:00 -- 我这个不是复制,是修改,这么写代码应该不可以吧,主要是因为行号不一致,行的顺序有点错乱,如果是用表达式就可以完美解决,现在就是不能转换成表达式格式,有什么代码可以实现“一次性表达式”这样的功能。 |
-- 作者:有点蓝 -- 发布时间:2020/12/11 10:37:00 -- 差不多的,改为查询即可 Dim Cols1() As String = {"来源列一","来源列二","来源列三"} Dim Cols2() As String = {"接收列一","接收列二","接收列三"} Dim dr2 As DataRow For Each dr1 As DataRow In DataTables("表A").datarows dr2 = DataTables("表B").find("列1=\'" & dr1("列1")& "\'") if dr2 is nothing then dr2 = DataTables("表B").AddNew() For i As Integer = 0 To Cols1.Length -1
dr2(Cols2(i)) = dr1(Cols1(i)) Next Next |
-- 作者:huangjiacai -- 发布时间:2020/12/11 11:16:00 -- 可以了,谢谢。 |