以正确的格式在变量中存储阿拉伯数字

时间:2013-10-08 14:44:35

标签: c# oracle unicode

我有一个在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";

Oracle版本

10g Express Edition

1 个答案:

答案 0 :(得分:1)

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

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

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

它像魅力一样工作