本文介绍了将参数传递给动态SQL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
样本SP
我的参数应类似于-``DOB''''1/12/1980''''AND''''1/1/2080''''''(检查双引号)
-SelectEmp''在''''1/12/1980''''和''''1/1/2080''''''
之间的DOB
Sample SP
My parameter should be like - ''DOB BETWEEN ''''1/12/1980'''' AND ''''1/1/2080'''''' (Check double quotes)
-- SelectEmp ''DOB BETWEEN ''''1/12/1980'''' AND ''''1/1/2080''''''
ALTER PROCEDURE SelectEmp
-- Add the parameters for the stored procedure here
@DOB nvarchar(max)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @SQL VARCHAR(MAX)
set @Sql = 'select * from emp where '+ @DOB
print @Sql
exec (@Sql)
END
GO
我的.Net代码:-
My .Net Code :-
cn.Open();
SqlCommand cmd = new SqlCommand("SelectEmp", cn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@DOB", SqlDbType.VarChar, 1000);
cmd.Parameters["@DOB"].Value = "DOB BETWEEN "+"'''"+ "1/12/1980"+"''"+" AND "+ "'''"+ "1/1/2000"+"''"+"";
SqlDataReader dr;
dr = cmd.ExecuteReader();
while (dr.Read())
{
Response.Write("Hi");
}
我是gettinh错误语法不正确
有人可以帮我吗..
I am gettinh Error Incorrect Syntax
Can someone please help me ..
推荐答案
cmd.Parameters["@DOB"].Value = "DOB BETWEEN " + "''" + "1/12/1980" + "''" + " AND " + "''" + "1/1/2000" + "''";
好像有多余的"/"引号.
Seems like there are extra ''/" quotes.
cmd.Parameters["@DOB"].Value = "DOB BETWEEN " + "''" + "1/12/1980" + "''" + " AND " + "''" + "1/1/2000" + "''";
好像有多余的"/"引号.
Seems like there are extra ''/" quotes.
这篇关于将参数传递给动态SQL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!