通过数据视图过滤数据表时出现问题(使用 Concat 字段)
Posted
技术标签:
【中文标题】通过数据视图过滤数据表时出现问题(使用 Concat 字段)【英文标题】:Problem when filtering datatable by dataview (with Concat Fields) 【发布时间】:2020-08-24 19:14:46 【问题描述】:我有 sql 语法:
SELECT
FatoraID,
FatoraCode,
FatoraDate,
FatoraProduct,
FatoraQuan,
FatoraReso,
FatoraPurPrice,
FatoraPurTotal,
FatoraCustomer,
FatoraSalePrice,
FatoraDis,
FatoraPlus,
FatoraSaleTotal,
FatoraDriverType,
FatoraDriver,
FatoraDriverName,
FatoraCarNo,
FatoraDriverCost,
FatoraDriverCostTotal,
FatoraDriverCostPaid,
FatoraDone,
ProductName,
CONCAT(R.AccCode,' ',R.AccName) AS ResoName,
CONCAT(C.AccCode,' ',C.AccName) AS CusName,
CONCAT(D.AccCode,' ',D.AccName) AS DName
FROM tblfatora F
INNER JOIN tblproducts P ON
P.ProductID = F.FatoraProduct
INNER JOIN tblaccounts R ON
R.AccID = F.FatoraReso
INNER JOIN tblaccounts C ON
C.AccID = F.FatoraCustomer
LEFT JOIN tblaccounts D ON
D.AccID = F.FatoraDriver
ORDER BY FatoraDate
在某处我使用数据视图过滤数据表:
xPub_Filter = ""
xPub_Filter = Trim("FatoraID+
FatoraCode+
FatoraDate+
FatoraDriverType+
FatoraDriverName+
FatoraCarNo+
FatoraDriverCostPaid+
FatoraDone+
ProductName+
ResoName+
CusName+
DName
like '%" & Me.TxtS.Text & "%'")
我用结果填充 GridView,问题是当我删除下一个字段时过滤器工作得很好:
ProductName+
ResoName+
CusName+
DName
但对他们来说它不起作用。
【问题讨论】:
你的 Trim 在这里有意义,比如 '%" & Trim(Me.TxtS.Text) & "%'" 不是在开头 ;) 【参考方案1】:文件管理器表达式不正确
您必须为每一列指定一个比较,并且语法类似于 sql
xPub_Filter = ""
xPub_Filter = "FatoraID like '%" & Trim(Me.TxtS.Text) & "%' OR
FatoraCode like '%" & Trim(Me.TxtS.Text) & "%' OR
FatoraDate like '%" & Trim(Me.TxtS.Text) & "%' OR
FatoraDriverType like '%" & Trim(Me.TxtS.Text) & "%' OR
FatoraDriverName like '%" & Trim(Me.TxtS.Text) & "%' OR
FatoraCarNo like '%" & Trim(Me.TxtS.Text) & "%' OR
FatoraDriverCostPaid like '%" & Trim(Me.TxtS.Text) & "%' OR
FatoraDone like '%" & Trim(Me.TxtS.Text) & "%' OR
ProductName like '%" & Trim(Me.TxtS.Text) & "%' OR
ResoName like '%" & Trim(Me.TxtS.Text) & "%' OR
CusName like '%" & Trim(Me.TxtS.Text) & "%' OR
DName like '%" & Trim(Me.TxtS.Text) & "%'"
【讨论】:
谢谢亲爱的,它正在工作,但它让我“无法对 system.int32 和 system.string 执行 'like' 操作”,如何更改您的解决方案来解决它? 是的,like 仅对文本有效,但我看不出您拥有哪种列。所以你应该真正看到你想要什么并确定你想要过滤什么,但是你可以编写正确的过滤器。你最清楚自己想要什么 谢谢,我只是想将“FatoraID”列转换为字符串。以上是关于通过数据视图过滤数据表时出现问题(使用 Concat 字段)的主要内容,如果未能解决你的问题,请参考以下文章
使用 isin(list) 过滤数据帧时出现“ValueError:列必须与键长度相同”
在将 Google BigQuery 作为源数据库的 Metabase 中使用字段过滤器时出现无法识别的名称
使用 Javascript 在 Laravel 刀片视图中显示数组中的动态数据时出现问题
尝试通过 terraform 设置 cloudwatch 日志过滤器时出现 InvalidParameterException