将俄语数据从数组插入数据库

本文关键字:插入 数据库 数组 俄语 数据 | 更新日期: 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 格式。