我有一个这样的分隔符字符串:“2,3”,它从列表框值中抓取,我将传递给我的SProc参数:
AddInParameter(dbCommand, "@Mode", DbType.String, 50, DBNull.Value)
If Not String.IsNullOrEmpty(.MemshpT) Then
dbCommand.Parameters("@Mode").Value = .MemshpT 'MemshipT will contain "2,3"
在我的SProc中我有这样的条件:
and Cast(T.Mode as varchar(20)) in(@Mode))
现在我的列表框中包含值:1,2,3,4。如果我单独选择值为'1'并将其传递给我的SQL参数,我将在gridview中输入所有活动类型1,但如果我突出显示多于1个值,则它不返回任何内容,因为字符串变为“2,3” “哪个(模式不为空,而T.Mode如'%'+ @Mode +'%')似乎无法捕获。如何重建我的分隔符或SQL查询,以便检测单个和多个分隔值(例如“1,2”将返回1和2的所有活动)并显示在我的gridview中。感谢。
答案 0 :(得分:1)
(T.Mode IN (@MODE))
我假设MODE是整数数据类型,每条记录只能有1个值。
所以你的搜索字符串看起来像1,2,3,4
数据库字段模式中的值看起来像
1
2
3
4
我认为你想使用IN运算符而不是..
会导致1(1,2,3,4)