gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-30 00:55:22 25 4
gpt4 key购买 nike

我正在尝试使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com