将俄语数据从数组插入数据库
本文关键字:插入 数据库 数组 俄语 数据 | 更新日期: 2023-09-27 18:34:16
我的查询如下所示:
string str = string.Format("Insert into [MyDB].[dbo].[tlb1] ([file_path],[CONTENT1],[CONTENT2]) values ('{0}','{1}','{2}');", fullpath, _val[0], _val[1]);
现在,当我将数据插入数据库时,如果array _val[]
包含英语数据,它会正确插入,但是当数组包含数据库中的俄语数据时,这会显示???????????????????????
有没有办法从数组中插入俄语数据。
根据这个(存档)Microsoft支持问题:
在SQL Server 中处理 Unicode 字符串常量时,必须在所有 Unicode 字符串前面加上前缀 N
首先,您应该使用预准备语句并让数据库驱动程序正确插入占位符(即 SqlCommand
参数)。然后问题应该消失(以及任何潜在的SQL注入问题)。
作为您的快速解决方案:在要插入的字符串文本前面加上N
:
... values (N'{0}',N'{1}',N'{2}')
这会导致文本是 Unicode 文本,而不是任意遗留代码页文本,从而阻止从 Unicode 到旧代码页的转换(这会导致无法表示的字符的问号)。
似乎列
[Content1]
和[Content2]
的数据类型是nchar
。您应该将列转换为用于存储 unicode 数据的列nvarchar
。
首先,您必须在服务器上查看数据库代码页。数据库中可能是非 Unicode CP,但应用中的数据采用 Unicode 格式。