2012-09-16 29 views
0

我试图从波斯语插入到我的数据库(SQL Server 2008)从C#代码。 问题是,当你插入sql服务器,你只是简单地使用utf-8的N'چプラファン'。但是如何在LINQ中做到这一点? (我不想使用存储过程)。 Thorks什么是C#和LINQ中波斯语中N'something的等价物?

+0

这是一个关于翻译或字符编码的问题吗? –

+0

为什么你不想使用存储过程? – Oded

+0

它是utf-16,* not * utf-8,SQL Server 2008不支持utf-8。 – RBarryYoung

回答

2

只需使用字符串"چیزی"并确保您的.cs文件也是UTF-8

将此用作参数化查询中的参数或您正在使用的任何ORM中的参数。数据访问层将负责编码。

+0

我很确定VS将源代码文件保存为utf-16,这应该足够了。 – RBarryYoung

+0

@RBarryYoung - 你可能是对的。这种或那种方式,它是一种Unicode编码。 – Oded

+0

其实我的问题是,当即时消息插入“چیزی”到我的表中时,除了最后一个字母插入阿拉伯语像这样“چیزي”,一切都可以。我使用实体框架。 – Ashkan

0
  • LINQ到EF或LINQ到SQL将生成/使用N '' 自动到处:

    EXEC sp_executesql的N'update [DBO] [用户] 集[名称] = @ 0 其中(([Id] = 1)和([Name] = 2)) ',N'@ 0 nvarchar(max),@ 1 int,@ 2 nvarchar(max)',@ 0 = N'User名字1',@ 1 = 1,@ 2 = N'Vahid'

  • 那些N'ي'(阿拉伯语)或N'ì'(波斯语)都是有效的UTF-8字符。所以你需要自己(在插入数据之前)在它们之间进行转换,它不是EF或SQL Server的职责。 (波斯语) Some examples

相关问题