如何在sp参数之前添加N?

时间:2013-12-22 11:51:51

标签: c# sql database

我在sql中有吼叫:

     create proc spGetValue(@Field nvarchar(20))
     as
     select * from ASI_TblWorkflow
     where Caption = @Field

当我像这样调用sp时:exec spGetValue @Field ='مرحله' 它不会返回任何记录。但如果我在我的字符串之前使用N,就像N'مرحله'那样它会返回所需的记录。 我知道n是国家语言字符,但由于我的参数是Nvarchar,为什么我的价值之前需要N? 另外我从我的c#代码中调用这个sp。我不能在我的字符串值之前添加N.如何在sp?!

中的参数之前添加N.

2 个答案:

答案 0 :(得分:0)

试试这个

SqlConnection connection = new SqlConnection("connection string");
SqlCommand sqlcmd = new SqlCommand("spGetValue", connection);
sqlcmd.CommandType = System.Data.CommandType.StoredProcedure;

SqlParameter pField = sqlcmd.Parameters.Add("@Field", System.Data.SqlDbType.NVarChar, 50);
pField.Value = "value here";

connection.Open();
SqlDataReader reader = sqlcmd.ExecuteReader();

答案 1 :(得分:-4)

CREATE TABLE tblIPBlackList (IPAddress varchar(50))
go
CREATE PROCEDURE [dbo].[AddIPToBlacklist]
 @ipAddress nvarchar(50) = ''
 AS
 BEGIN
 SET NOCOUNT ON;
 INSERT INTO [tblIPBlackList] ([IPAddress]) VALUES (@ipAddress)
 END

 go
 exec AddIPToBlacklist @ipAddress=N'127.0.0.1'

 select * from tblIPBlackList