以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 列不属于表 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=169664) |
-- 作者:tld -- 发布时间:2021/6/25 9:19:00 -- 列不属于表 老师好 我希望查找所有的表,如果列包含委托单位 、委托编号,当委托编号为 20210607 、且委托单位是 上海ABC时,将委托单位更改为 上海。下面代码出现错误,请 您帮我看看下错在哪里。谢谢! For Each dt As DataTable In DataTables If dt.DataCols.Contains("委托编号") AndAlso dt.DataCols.Contains("委托单位") If dt.DataCols("委托单位").Expression = "" AndAlso dt.Type = 3 Then Dim d As DataRow = dt.SQLFind("委托编号 = \'20210607\' ") If d IsNot Nothing AndAlso d("委托单位") = "上海ABC" Then d("委托单位") = "上海" End If End If End If Next |
-- 作者:有点蓝 -- 发布时间:2021/6/25 9:48:00 -- 委托单位是表达式列? |
-- 作者:tld -- 发布时间:2021/6/25 13:13:00 -- dt.DataCols("委托单位").Expression = "" 我想用这个代码来排除表达式列。还有其他的方法吗? |
-- 作者:有点蓝 -- 发布时间:2021/6/25 13:31:00 -- 表达式列也有可能没有表达式的。检查一下表结构,如果不需要使用表达式的,建议还是改为数据列 |
-- 作者:tld -- 发布时间:2021/6/25 14:50:00 -- 老师,如何判断一个列是否是表达式列呢? |
-- 作者:有点蓝 -- 发布时间:2021/6/25 15:02:00 -- 正常就是3楼的方法。 如果也会有表达式列里没有表达式的情况,可以使用SQLCommand到数据库里提取表格判断:http://www.foxtable.com/webhelp/topics/0696.htm
Dim cmd As New SQLCommand cmd.ConnectionName = "数据源名称" Dim dt As DataTable cmd.CommandText = "SELECT * From {订单} where 1=2" dt = cmd.ExecuteReader() if dt.DataCols.Contains("委托单位") |
-- 作者:tld -- 发布时间:2021/6/25 23:42:00 -- 谢谢。 |