0

我使用 sqlbulkupload 上传 excel 文件

该文件具有阿拉伯数据,因此它被插入到数据库中,如“??????” .

我该如何解决这个问题?这是我的代码

                OleDbConnection excelConnection = new OleDbConnection(excelConnectionString);
            //Create OleDbCommand to fetch data from Excel
            OleDbCommand cmd = new OleDbCommand("Select * from [Sheet1$]", excelConnection);

            excelConnection.Open();
            OleDbDataReader dReader;
            dReader = cmd.ExecuteReader();


            SqlBulkCopy sqlBulk = new SqlBulkCopy(sqlConnectionString);
            sqlBulk.DestinationTableName = "StudentInfo";
            sqlBulk.WriteToServer(dReader);
4

1 回答 1

0

最明显的答案是将您的数据库列转换为 nvarchar 类型。如果它们是 varchar,它们将无法保存 ascii 范围之外的 unicode 字符。

如果它们在您的数据库中已经是 nvarchar,请尝试更改连接字符串。此示例来自 vb6 应用程序,但可能会有所帮助:

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & ";Extended Properties=""Text;HDR=YES;CharacterSet=Unicode"""

在这里找到:http: //social.msdn.microsoft.com/Forums/windows/en-US/34efad11-bf82-4484-9904-107c3c39a302/reading-from-a-csv-or-a-txt-file-in -unicode 格式

于 2013-10-03T07:16:32.487 回答