SQL IN关键字在存储过程中不起作用 [英] SQL IN keyword not working in Stored Procedure

查看:123
本文介绍了SQL IN关键字在存储过程中不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在为我的项目使用存储过程.过程中使用的IN关键字,值通过参数传递.我没有得到输出.仅引发错误.

SQL代码:

I am using Stored Procedure for my project. IN keyword used within procedure, values are passing through parameter. I am not getting output. Only raise error.

SQL Codes:

Create Proc TestPro @Parameter Varchar(100)
as
Declare @QueryStr Varchar(1000)
set @QueryStr='Select Col1,Col2,Col3,Col4 from Table where Col1 in('+ @Parameter+ ')'
Exec (@QueryStr)



C#代码:



C# Code:

string strPrValue="'ABC/01','ABC/02','ABC/03'";
SqlConnection sconPM = new SqlConnection(Constring);
SqlCommand sCmd = new SqlCommand("TestPro", sconPM);
SqlDataAdapter DA = new SqlDataAdapter(sCmd);
DataSet ds = new DataSet();
sCmd.Parameters.Add("@Parameter", SqlDbType.VarChar).Value = strPrValue;
sCmd.CommandType = CommandType.StoredProcedure;
DA.Fill(ds);



如果我仅在参数中传递一个值(ABC/01),则其工作正常,如果参数中的多个值引发错误,例如"ABC/附近的语法不正确",则



if i pass only one value(ABC/01) in parameter its working fine , if many value in parameter raise error like "incorrect syntax near ABC/"

推荐答案

您遇到什么错误?

尝试从(''+ @Parameter +'')'';
中删除'''' 并查看是否可行.
What error are you getting?

Try removing the '''' from (''+ @Parameter+'')'';
and see if this works.


对于单个值,您传递它运行良好,但对于多个值,则不起作用. 试试这个像字符串 strPrValue =''''''ABC/01'''''',''''''ABC/02'''''',''''ABC这样的字符串/03'''''';
For single value you pass it runs fine but for multiple it not work..
Try this one like string strPrValue="''''''ABC/01'''''',''''''ABC/02'''''',''''''ABC/03''''''";


这篇关于SQL IN关键字在存储过程中不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆