Unicode SQL查询W /参数而不是N前缀

我有一个插入查询,可以在C#中针对SQL Server数据库执行。

我插入的列是nvarchar类型。

我插入该列的数据是非英语的。

我是否足以使用AddWithValue将非英语数据传递给服务器? 像这样的例子:

string dogName = "עברית"; using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); using (SqlCommand command = new SqlCommand("INSERT INTO Dogs1(Name) VALUES @Name", connection)) { command.Parameters.AddWithValue("Name", dogName); command.ExecuteNonQuery(); } } 

或者我必须使用N前缀来声明它是unicode吗? 就像它在这里说的那样。

如果我正确理解了问题,您可以将SqlCommand参数显式设置为特定数据类型。 您将能够将其设置为nvarchar,如以下链接所示: http : //msdn.microsoft.com/en-us/library/yy6y35y8.aspx

以下代码段直接来自MSDN:

 SqlParameter parameter = new SqlParameter(); parameter.ParameterName = "@CategoryName"; parameter.SqlDbType = SqlDbType.NVarChar; parameter.Direction = ParameterDirection.Input; parameter.Value = categoryName; 

这使用了一个显式创建的SqlParameter实例,但它通过索引SqlCommand实例的SqlParameterCollection来实现同样的想法。

我相信底层的链接只是在谈论SQL本身的价值观。

据我所知,你得到的代码应该绝对正确 – 否则就无法指定Unicode文本。

当然,这可能值得validation – 但如果它不起作用我会感到非常惊讶。