我有3种不同的下拉选项。如果我一次选择一个选项,但是在选择多个选项时会产生错误。这三个标签指的是三个不同的版本。一切正常,但当我在下拉列表中选择多个选项时,它会崩溃。需要帮助了解它的原因
这三个参数是全选:Report1 Report2 Report3
在这里我的查询:
SELECT
ServerInfo.Version,
ServerInfo.Type,
ProjInfo.ProjName,
ServerInfo.ServName
FROM
ProjInfo, ServerInfo
WHERE ServerInfo.Version LIKE('%'+@ServerReport+'%')
报告处理期间发生错误。 (rsProcessingAborted)
这里的问题是查询期望单个字符串值,但是当选择了多个时,报告会向其发送一个值数组。
="," & Join(Parameters!ServerReport.Value, ",") & ","
这会将选定的值组合成一个逗号分隔的字符串。WHERE
子句:
@ServerReport like '%,' + ServerInfo.Version + ',%'
这允许它在参数字符串中扫描版本字符串。连接参数和like
语句外部的逗号可防止它无意中匹配部分字符串。
澄清:这一切都假设您实际上首先需要like
声明。通常你会说:
ServerInfo.Version IN (@ServerReport)
这将接受多个值而无需任何其他更改。但字符串必须完全匹配。