存储在数据库中时,Char数据发生变化 [英] Char data changing when stored in database
问题描述
我正在尝试使用以下使用存储过程的代码在数据库中存储值.
I am trying to store a value in the database with the following code that uses a stored procedure.
cmd.Parameters.Add("@c128", SqlDbType.NChar, 13);
cmd.Parameters["@c128"].Value = c128;
c128是包含13个字符的字符串.
值是:
c128 is a string containing 13 characters.
The values are:
[0] 170 ''ª'' char
[1] 103 ''g'' char
[2] 87 ''W'' char
[3] 86 ''V'' char
[4] 106 ''j'' char
[5] 73 ''I'' char
[6] 33 ''!'' char
[7] 116 ''t'' char
[8] 36 ''$'' char
[9] 131 '''' char
[10] 47 ''/'' char
[11] 109 ''m'' char
[12] 171 ''«'' char
但是在执行存储过程之后,数据库中的值立即为:
But immediately after I Execute the stored procedure, the value in the database is:
[0] 170 ''ª'' char
[1] 103 ''g'' char
[2] 87 ''W'' char
[3] 86 ''V'' char
[4] 106 ''j'' char
[5] 73 ''I'' char
[6] 33 ''!'' char
[7] 116 ''t'' char
[8] 36 ''$'' char
[9] 63 ''?'' char
[10] 47 ''/'' char
[11] 109 ''m'' char
[12] 171 ''«'' char
它用问号代替了字符131.
我不知道为什么会这样.
谢谢,
Bryan
It replaced character 131 with a question mark.
I am clueless as to why this is happening.
Thanks,
Bryan
推荐答案
''char [9] 131``??''字符 [10] 47''/''字符 [11] 109个"m"字符 [12] 171个«"字符
'' char [9] 131 '''' char [10] 47 ''/'' char [11] 109 ''m'' char [12] 171 ''«'' char
但是在执行存储过程之后,数据库中的值立即为:
But immediately after I Execute the stored procedure, the value in the database is:
[0] 170 ''ª'' char
[1] 103 ''g'' char
[2] 87 ''W'' char
[3] 86 ''V'' char
[4] 106 ''j'' char
[5] 73 ''I'' char
[6] 33 ''!'' char
[7] 116 ''t'' char
[8] 36 ''
'' char [9] 63 ''?'' char [10] 47 ''/'' char [11] 109 ''m'' char [12] 171 ''«'' char
'' char [9] 63 ''?'' char [10] 47 ''/'' char [11] 109 ''m'' char [12] 171 ''«'' char
它用问号代替了字符131.
我不知道为什么会这样.
谢谢,
Bryan
It replaced character 131 with a question mark.
I am clueless as to why this is happening.
Thanks,
Bryan
什么是数据库字段的排序规则?
请参阅: SQL Server排序规则基础 [
What is the collation of the database field?
see: SQL Server Collation Fundamentals[^]
这篇关于存储在数据库中时,Char数据发生变化的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!