我有一个查询希望通过包含“IN”子句的ASP.NET TableAdapter运行,该子句将通过参数接收其值。
我的问题是,我如何指定此参数?我考虑像这样编写条件语句:
AND b.group_category_id in (@ParamList)
@ParamList是参数的字符串,例如“4,12,45,23”,但由于指定的id是整数,它会抱怨无法将字符串转换为整数。这是有道理的,但是否有一种方法可以在ASP.NET TableAdapter的SQL语句中指定这样的列表呢?
我有一个查询希望通过包含“IN”子句的ASP.NET TableAdapter运行,该子句将通过参数接收其值。
我的问题是,我如何指定此参数?我考虑像这样编写条件语句:
AND b.group_category_id in (@ParamList)
@ParamList是参数的字符串,例如“4,12,45,23”,但由于指定的id是整数,它会抱怨无法将字符串转换为整数。这是有道理的,但是否有一种方法可以在ASP.NET TableAdapter的SQL语句中指定这样的列表呢?
WHERE charindex(',' + cast(b.group_category_id as varchar) + ',', @ParamList) > 0
你可以看一下http://dotnet.org.za/johanvw/archive/2008/06/13/mssql-split-function.aspx,并将其作为字符串传递。这是一种解决方法而不是真正的解决方案。但只有在使用MSSQL时才可用。
您可以将 @ParamList 作为逗号分隔的字符串传递,解析该字符串并将结果插入到一个 #table 中,然后使用 IN 来搜索 #table:
AND b.group_category_id in (select group_category_id from #group_category_id_list)
回答自己的问题:无法完成。