-3

我在 Oracle 中存储阿拉伯数字时遇到了一个奇怪的问题。经过调查,我发现 C# 正在正确存储阿拉伯数字 1 到 10 并将它们转换为“?” 特点。我该如何解决这个问题?

代码

sb_title = "ھیلو۱۲۳";
query = "INSERT INTO MyTABLE(SB_TITLE)VALUES('"+sb_title+"');
OracleCommand myCommand = new OracleCommand(query, this.myConnection);
affectedRows = myCommand.ExecuteNonQuery();

经过彻底调试后,我发现该变量不会调整数据,而是在某处插入会弄乱数据。SB_TITLE是 NVARCHAR 类型

Oracle 连接字符串

sConnectionString = "User Id=xx;Password=xx;Data Source=XE";

甲骨文版

10g快捷版

4

1 回答 1

1

其实很奇怪。Oracle 驱动程序将阿拉伯文本作为非 Unicode 文本处理,但对于数字,它实际上需要 unicode 值。在我的连接字符串中,我没有提到Unicode=True。我所做的一切让我改变了:

sConnectionString = "User Id=xx;Password=xx;Data Source=XE";

sConnectionString = "User Id=xx;Password=xx;Data Source=XE;Unicode=True";

它就像魅力一样

于 2013-10-08T19:49:10.303 回答