c# - 从 Excel 插入数据集时数据在 255 个字符后被截断,但填充 DataTable 时没有问题

标签 c# excel

我正在尝试使用 ADO.NET 将数据从 Excel 文件插入到数据集。以下是采用的程序

  1. 首先使用
  2. 将所有excel数据加载到数据集中

connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=mydb.xlsx;Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=2\"";

  1. 填充数据集时它仅插入 255 个字符。 (我找不到它被截断的地方)。在我们的源代码中没有截断代码。但是当使用相同的连接来填充数据表时,不会出现这样的问题。

请帮我解决这个问题

提前致谢

最佳答案

问题在于,当您填充数据集时,ACE 驱动程序正在为该列推断 TEXT 数据类型。文本列限制为 255 个字符。您需要强制它使用 MEMO 数据类型。当您填充数据库时,大概数据库列的类型支持超过 255 个字符,并且驱动程序会选择它。

除了 this thread on the problem 中讨论的方法之外, 您可以通过插入一个虚拟数据行并在该列的单元格中插入 256 个或更多字符来强制它使用 memo 数据类型。 (该线程与 Jet 有关,但也应该适用于 ACE。)

也许您最好的选择是使用其他一些库来读取文件并在没有 Jet/ACE 的情况下填充数据集。

关于c# - 从 Excel 插入数据集时数据在 255 个字符后被截断,但填充 DataTable 时没有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9889998/

相关文章:

c# - asp.net 2.0版本在不同电脑上的网站解析问题

javascript - 在目录中打开/保存 Excel 文件

excel - 在某个区域中找到满意的单元格,然后突出显示该单元格所在的行

mysql - excel vba - 根据包含日期和时间的相邻单元格添加带有日期的表格列

excel - 如果满足条件,则创建数据列表

ios - iOS拖放后如何保存Excel xlsx

c# - 使用 ADO.NET 将 JSON 文档插入 MySQL 中的行

c# - CSVReader - CSV 文件中不存在字段

c# - Dapper 和存储过程

c# - HttpRequestException - 1&1 Ionos 计划上的 SendGrid 电子邮件 API v3 集成