我需要将服务器端参数传递给我的SqlDataSource SELECT IN子句,如下所示(注意参数@InClause及其在aspx中定义的SQL-select中的位置(对于SqlDataSource) :
SELECT UID_REPORT, TXT_RPT_TEXT, TXT_RPT_NAME, TXT_RPT_ASPX_PAGE, TXT_RPT_TYPE
FROM REPORTS WHERE (UID_REPORT IN (@InClause))
ORDER BY INT_SORT_ORDER
但是这不会在Test-Query操作中通过验证。 ' @ InClause'参数从HiddenField控件获取它的值。 我想根据一些条件设置这个值。例如,如果DIVISION = 5那么@InClause将=" 45,46"否则=" 14,15"。 有关如何通过hiddenfield.Value(当然是一个字符串)传递IN(...)值的任何建议。 感谢。
答案 0 :(得分:1)
您需要split string
功能来执行此操作
SELECT uid_report,
txt_rpt_text,
txt_rpt_name,
txt_rpt_aspx_page,
txt_rpt_type
FROM reports
WHERE uid_report IN (SELECT split_value
FROM Udf_splitstring(@InClause, ','))
ORDER BY int_sort_order
检查以下链接以创建拆分字符串函数