C#窗口表单应用程序将阿拉伯语存储到数据库中?

时间:2017-01-31 07:15:03

标签: c# forms winforms unicode

我在Stackoverflow中搜索结果这是我发现但仍有问题:" 要使字段能够存储unicode字符,您必须使用nvarchar类型(或其他类似的ntext,nchar)。

要在数据库中插入unicode字符,您必须使用nvarchar / SqlDbType.NVarChar等参数类型将文本作为unicode发送。

(为了完整性:如果你动态地创建SQL(针对常见建议),你在字符串文字之前放置一个N来使其成为unicode。例如:插入表(名称)值(N' Pavan&#39 ;))"

我的问题是我的代码存储是这样的: String Name = Text1.Text; SqlCommand cmd = new SqlCommand(" Insert into Tablex values(Name)",con); 如果我在名称之前加上N指向另一个需要初始化的字符串,那么我可以做什么帮助

2 个答案:

答案 0 :(得分:2)

你担心错误的一层; c#字符串已经与Unicode字符串(以及其他编码)兼容,因为它们存储为UTF-16。您不必担心从c#角度进行编码。

您需要担心数据库上的编码。使用NVarChar作为列类型定义表模式,如果使用任何存储过程,则需要将任何字符串参数定义为NVarChar。请务必使用SqlDbType“NVarChar”绑定任何参数。

此外,请确保SQL Server使用适当的collation

答案 1 :(得分:0)

好的,所以我发现了它并且它有效: 只有Nvarchar,ntext或nchar才有效 无需进行整理,我们在代码中所要做的就是以下内容:  插入表(名称)值(N' Pavan') 或者在我将textfield放入字符串的情况下: "插入Tablex值(N'" + Mname +"''" + Mp +"'& #39;" + Ln +"','" + Mc +"','" + ML + "')&#34 ;; N'"将下一个输入转换为Utf,以便识别阿拉伯语,感谢大家的帮助