SQL'喜欢'没有检测到分隔的多个值

时间:2011-11-17 04:37:00

标签: sql vb.net

我有一个这样的分隔符字符串:“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中。感谢。

1 个答案:

答案 0 :(得分:1)

(T.Mode IN (@MODE))

我假设MODE是整数数据类型,每条记录只能有1个值。

所以你的搜索字符串看起来像1,2,3,4

数据库字段模式中的值看起来像

1

2

3

4

我认为你想使用IN运算符而不是..

会导致1(1,2,3,4)