none
使用Foreach ADO.NET 架构行集枚举器遇到的问题 RRS feed

  • 问题

  • 我使用 Foreach 文件枚举器嵌套Foreach ADO.NET 架构行集枚举器循环遍历目录中所有的Excel文件及其中的所有Sheet, 在遇到大数量文件时遇到问题。 错误提示如下: Error: The GetEnumerator method of the ForEach Enumerator has failed with error 0x80004005 "未指定的错误". This occurs when the ForEach Enumerator cannot enumerate. 可以保证每个文件中的Sheet结构都相同,数据总量大概600-700W行。 目录中共有230多个EXCEL文件,有时循环到190+出错,有时循环到60个左右出错,有时则可以通过,但出错情况居多。 我尝试把Foreach ADO.NET 架构行集枚举器容器中的所有操作全部Disable,仅仅去枚举一下结构,仍然不时出现错误。 求解,谢谢。
    2009年10月23日 3:32

全部回复

  • 请转到ADO.NET 与 LINQ提问
    2009年10月23日 3:34
    版主
  • 请转到ADO.NET 与 LINQ提问

    这个是SSIS范畴阿
    2009年10月23日 3:36
  • 不好意思,这块不熟,盼其他朋友来解答
    2009年10月23日 3:43
    版主
  • 是不是处理过程中, 文件夹中的文件或者目录又有变化啊?
    2009年10月23日 4:19
  • 是不是处理过程中, 文件夹中的文件或者目录又有变化啊?

    没有变化。只枚举架构不做数据处理的话有机会通过,但是也频繁报错。枚举+处理基本通不过,出错位置随机。

    会不会跟Excel列数较多有关?大约40列左右。

    但是当处理50个以下的时候,没有任何问题。
    2009年10月23日 4:50
  • 同类型的SSIS,目录中原有Excel文件20个,运行正常,我把这20个文件复制成100+副本文件,处理时也出现错误了,错误信息相同。

    Excel结构跟我之前提问时的Excel完全不同。

    各位达人平时有没有批量导入过Excel文件阿?最多一次处理多少个?

    2009年10月23日 7:59
  • 各位达人有没有什么解决思路?
    2009年10月26日 1:50
  • 这个错误看起来像是枚举器阅读excel文件的时候overflow了!你是要读取所有的内容么?每一个文件的数据量有多大?
    2009年10月26日 2:46
  • 这个错误看起来像是枚举器阅读excel文件的时候overflow了!你是要读取所有的内容么?每一个文件的数据量有多大?

    每个Execl文件5-10M,每个Sheet有48列,20000-60000行不等。

    关键它不是每次都出错,有时还能通过。

    您说的枚举其阅读Excel文件是什么意思?阅读结构还是包含数据?
    2009年10月26日 3:11
  • 因为你要枚举excel内容,枚举器需要调用excel打开你的文件。如果你的数据量很大,就有可能造成溢出!。
    你能确定每次出错的文件么?

    如果能的话把出错文件单独拿出来做实验。如果没有问题,那么数据量过大造成溢出的可能性就比较大了!

    2009年10月26日 3:17
  • 因为你要枚举excel内容,枚举器需要调用excel打开你的文件。如果你的数据量很大,就有可能造成溢出!。
    你能确定每次出错的文件么?

    如果能的话把出错文件单独拿出来做实验。如果没有问题,那么数据量过大造成溢出的可能性就比较大了!


    每次出错文件可能不同。

    该容器每次循环同批次文件少于50个的时候都没有问题。

    我在内层Foreach ADO.NET 架构行集枚举器循环中不操作任何处理的时候,枚举的也是Excel内容而不是仅仅枚举Sheet结构吗?


    我尝试让所有Excel都仅保留一个Sheet,固定Sheet名字,直接使用文件枚举器枚举这200+文件同时处理数据(无需使用Foreach ADO.NET 架构行集枚举器循环Sheet),没有任何问题,但是使用两层Foreach嵌套循环,就会出现问题,即使每个Excel只有一个Sheet。
    2009年10月26日 3:40
  • 我围绕Foreach ADO.NET 架构行集枚举器进行了各种测试,确认无论EXCEL的结构如何改变(不论列多少),只要数量达到一定程度,这个枚举器肯定会出问题。
    这算不算BUG?
    一定要逼着我修改EXCEL的结构?有时候商务上的事情我们很难左右阿,哎~
    2009年10月26日 8:54