Son*_*ner 3 c# sql-server stored-procedures
C#代码:
\n\nusing (SqlCommand myCommand = new SqlCommand("My_StoredProcedure", myConnection))\n{\n myCommand.Parameters.AddWithValue("@Parameter","Qu\xe1\xba\xa3n tr\xe1\xbb\x8b");\n}\nRun Code Online (Sandbox Code Playgroud)\n\n存储过程:
\n\nALTER PROCEDURE [dbo].[My_StoredProcedure] \n (@Parameter NVARCHAR(MAX))\nRun Code Online (Sandbox Code Playgroud)\n\n我尝试过的事情:
\n\n更改AddWithValue为SqlDbType.VarChar如下设置
myCommand.Parameters.AddWithValue("@Parameter", SqlDbType.VarChar).Value = "Qu\xe1\xba\xa3n tr\xe1\xbb\x8b";\nRun Code Online (Sandbox Code Playgroud)然后将存储过程参数类型更改为varchar如下
ALTER PROCEDURE [dbo].[My_StoredProcedure]\n (@Parameter VARCHAR(MAX))\nRun Code Online (Sandbox Code Playgroud)问题:
\n\n我尝试的方法无法显示正确的文本值。文本始终显示Qu?n tr?在存储过程一侧。
如果我在下面尝试,这可行,但这不是我想要的。我想从代码(C#)端添加“N”前缀。所以我不确定如何实现这一目标。
\n\nALTER PROCEDURE [dbo].[My_StoredProcedure]\n (@Parameter NVARCHAR(MAX) = N\'Qu\xe1\xba\xa3n tr\xe1\xbb\x8b\')\nRun Code Online (Sandbox Code Playgroud)\n\n我应该在 C# 或 SQL Server 中应用什么样的解决方案?
\n\n任何帮助将不胜感激。
\n\n谢谢
\n我会将 SQL 中的数据类型保留为 an,NVARCHAR因为它应该是这样,并且 C# 代码应该如下所示:
myCommand.Parameters.Add("@Parameter", SqlDbType.NVarChar).Value
Run Code Online (Sandbox Code Playgroud)
您已传入VarChar而不是NVarChar因此 Unicode 不显示是有意义的。
| 归档时间: |
|
| 查看次数: |
2886 次 |
| 最近记录: |