如何在查询字符串中插入 nvarchar 值

Bit*_*ase 7 sql sql-server

我有一个查询字符串是

   var projectid = sqlConn.Query<int>("insert into project (name,customer_id, service_id,user_id) values (@name,@customerid,@serviceid,@userid);SELECT SCOPE_IDENTITY(); ", new { name = Name, customerid = Customer, serviceid = Service, userid = userId }).Single();
Run Code Online (Sandbox Code Playgroud)

其中 name 是 nvarchar 字段。现在我知道我需要使用“N”字符并且我已经尝试了以下操作

'N@name'
N'@name'
Run Code Online (Sandbox Code Playgroud)

但它似乎不起作用。有人可以帮我解决这个问题吗?

And*_*yev 5

您不需要N对变量使用前缀。

仅当显式键入字符串(字符串常量)时才需要它,例如insert into ... values(N'some text', ...)

如果您的name变量包含 unicode 字符串 - 那么不需要特殊操作。