Sql 从下拉列表项值向存储过程传递多个值
我的表中有一列包含值S、a、p和N 我有一个由下拉列表更新的网格 网格附加到存储过程 从下拉列表中,我有以下选项,我希望将适当的值传递给存储过程Sql 从下拉列表项值向存储过程传递多个值,sql,visual-studio,gridview,parameter-passing,Sql,Visual Studio,Gridview,Parameter Passing,我的表中有一列包含值S、a、p和N 我有一个由下拉列表更新的网格 网格附加到存储过程 从下拉列表中,我有以下选项,我希望将适当的值传递给存储过程 森-哪个应该通过S、A和P 非SEN-只应通过N 如何为SEN传递多个值,以便将结果向下过滤到任何S、A或p记录?”N'可以作为listitem值传递,但我不确定在SEN的情况下如何传递所有3个值。可以使用下拉列表项的value属性来实现吗?您可以将逗号分隔的值传递给存储过程 有两种方法可以在存储过程中处理这个逗号分隔的列表 使用动态sql和在运算
- 森-哪个应该通过S、A和P
- 非SEN-只应通过N
如何为SEN传递多个值,以便将结果向下过滤到任何S、A或p记录?”N'可以作为listitem值传递,但我不确定在SEN的情况下如何传递所有3个值。可以使用下拉列表项的value属性来实现吗?您可以将逗号分隔的值传递给存储过程 有两种方法可以在存储过程中处理这个逗号分隔的列表
返回@Tbl_值表(indValues varchar(500))作为 开始 如果(@CommaSperatedString!='') 开始 设置@CommaSperatedString=@CommaSperatedString+,' --保持搜索位置的索引 声明@Pos1 Int 声明@pos2 Int
-- Start from first character
Set @Pos1=1
Set @Pos2=1
While @Pos1<Len(@CommaSperatedString)
Begin
Set @Pos1 = CharIndex(',',@CommaSperatedString,@Pos1)
Insert @Tbl_Values Select Cast(Substring(@CommaSperatedString,@Pos2,@Pos1-@Pos2) As varchar(500))
-- Go to next non comma character
Set @Pos2=@Pos1+1
-- Search from the next charcater
Set @Pos1 = @Pos1+1
End
End
--从第一个字符开始
设置为@Pos1=1
设置为@Pos2=1
而@Pos1则对此表示感谢。最后,我通过在存储过程的WHERE子句中使用case语句解决了这个问题。然而,您的两个建议也是使用SQL解决的,它为我指明了正确的方向。