我有一个像下面这样调用 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)