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

kro*_*oiz 9 c# sql sql-server unicode

我有一个插入查询,可以在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();
    }
}
Run Code Online (Sandbox Code Playgroud)

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

小智 6

如果我正确理解了这个问题,您可以将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;
Run Code Online (Sandbox Code Playgroud)

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