首页 > 解决方案 > SqlBulkCopy 数据末尾有新行的问题

问题描述

我在SqlBulkCopyASP.NET MVC 页面上使用 C# 和 EPPlus 导入 Excel 文件。我的目标是导入所有行,与现有数据进行比较,然后更新不匹配的值。除了处理数据末尾的换行符和换行符外,一切正常。

\r\n变成\n,如果最后,它会被完全忽略,例如:

这“...cerâmica e com tampa removível. \r\n\r\nVersátil, pode ser usada como pote na sua decoração。\r\n\r\nRecomendada para todos os environmentes da casa。\r\n\r \n" 变为 "...cerâmica e com tampa removível。\n\nVersátil, pode ser usada como pote na sua decoração。\n\nRecomendada para todos os environmentes da casa。"

考虑到列的类型是 ,寻找答案我设法理解这种行为是预期的varchar(max),对吗?

如果是这样...我的问题是我不能使用大字符列,因为它会超过最大行大小,因为我需要许多大大小列。

我需要在数据末尾保留这些换行符,并且如果可能的话,我也希望保持中间的那些不受影响。

有没有办法使用SqlBulkCopy和更改此行为以完全不更改数据?我不知道,也许列映射中的某些东西?

关于导入过程,一切都从 Excel 文件开始。我导入该文件并将其转换为 EPPLUSExcelPackage类。然后我将ExcelSheet带有数据的DataTable.

之后,我在数据库上创建了一个临时表。相关列属于[VARCHAR](MAX) COLLATE SQL_Latin1_General_CP1_CI_AS NULL类型。最后,我SqlBulkCopy用来将数据写入DataTable该临时表中。

我检查了数据在DataTable. 仅当信息写入数据库中的表时才会发生更改。

PS我没有包含代码,因为我认为它与问题无关。如果你们有其他想法,请告诉我。

标签: c#asp.net-mvcepplussqlbulkcopy

解决方案


推荐阅读