【发布时间】:2016-11-17 07:53:53
【问题描述】:
我有一个如下所示的存储过程。当我发送包含波斯字母 'ی' 的参数时,它不会返回任何记录。 我以前用过N,但是没用。
ALTER PROCEDURE [DB].[sp_Acceptor_SelectByDynamicField_ForChart]
@ProjectType NVARCHAR(50)=NULL,
@FromDate datetime=NULL,
@ToDate datetime=NULL
AS
BEGIN
SET NOCOUNT ON;
DECLARE @Where VARCHAR(MAX),
@SQL VARCHAR(MAX)
SET @Where = ' WHERE 1=1 '
IF ( @ProjectType IS NOT NULL )
SET @Where = @Where + ' AND ProjectType = N''' + @ProjectType + ''' '
IF ( @FromDate IS NOT NULL AND @ToDate IS NOT NULL )
SET @Where = @Where + ' AND PmDate BETWEEN ''' + CONVERT(nvarchar(50),(@FromDate),101) + ''' AND ''' + CONVERT(nvarchar(50),@ToDate, 101) + ''' '
SET @SQL = 'SELECT * From Acceptor ' + @Where
EXEC (@SQL)
END
【问题讨论】:
-
ProjectType = N''' + @ProjectType + ''' '应该改为ProjectType LIKE N''%' + @ProjectType + '%'' '
标签: c# asp.net sql-server stored-procedures