我在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.答案 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