Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过SQL Server存储过程插入Unicode字符_C#_Sql Server_Unicode - Fatal编程技术网

C# 通过SQL Server存储过程插入Unicode字符

C# 通过SQL Server存储过程插入Unicode字符,c#,sql-server,unicode,C#,Sql Server,Unicode,我有一个如下的代码,它调用SQL Server存储过程 名字将被传递一个值,如电子邮箱 sCmd.Parameters.Add("@FName", SqlDbType.NVarChar); sCmd.Parameters.Add("@LName", SqlDbType.NVarChar); sCmd.Parameters["@FName"].Value = firstname; sCmd.Parameters["@LName"].Value = lastname; 在存储过程中: @FNam

我有一个如下的代码,它调用SQL Server存储过程

名字将被传递一个值,如电子邮箱

sCmd.Parameters.Add("@FName", SqlDbType.NVarChar);
sCmd.Parameters.Add("@LName", SqlDbType.NVarChar);

sCmd.Parameters["@FName"].Value = firstname;
sCmd.Parameters["@LName"].Value = lastname;
在存储过程中:

@FName nvarchar(200),
@LName nvarchar(200)

INSERT INTO [dbo].[testunicode]
       ([col1]
       ,[col2])
VALUES
       (@FName
       ,@LName);
但数据插入为????甚至表格列也是
NVarchar(max)

我尝试在传递到存储过程之前添加'N',以及下面的。但还是一样。这样做的最佳方式是什么

  Encoding tc = Encoding.GetEncoding("BIG5");
  byte[] bytes = tc.GetBytes(firstname);
  firstname = Encoding.Unicode.GetString(bytes)
在传递到Sp之前,我尝试添加“N”

不需要,因为.NET字符串支持Unicode,它将处理Unicode。如果看到传递到数据库的请求,您将注意到N'将自动附加

这样做的最佳方式是什么

你做得对。不需要传递任何其他信息

但数据插入为


检查表中的数据类型。它真的是NVarChar吗?

你试过把它读回去吗?因为它看起来是正确的方式