日期:2014-05-17  浏览次数:20521 次

Oledb Excel 读取失败
使用oledb的方式读取使用excel数据,大部分时间使用正常,但有时会发生不能读取的情况,一旦不能读取,整个系统中通过oledb读取excel都不行了。
网上也查了一下,应该不是权限的问题。当不能读取时,重启机器可解决问题,但不是长久之计。
怀疑类似于文件被打开,卡在系统中没有关闭,而无法读取造成的。
也检查了一下读取excel的代码,都有写释放的代码。

各位能否给点解决建议?

------解决方案--------------------
你的EXCEL文件放在哪儿了?

不能放在你的网站的根目录下。

那样容易悲剧 放在别的盘中 IIS 要重新编译整个网站的。。

我以前项目就是这个问题。。

你要GC 
释放相关资源
------解决方案--------------------

如果确定不是权限问题。。

那就要自己仔细检查代码了。。。
------解决方案--------------------
引用:
不能放在你的网站的根目录下。

那样容易悲剧 


同悲过
------解决方案--------------------
可能是代码的问题
------解决方案--------------------
读取的时候可能是出现了错误,然后OleDbConnection就没有关闭。你应该确保无论出现什么错误,都保证OleDbConnection关闭
------解决方案--------------------
最好跟踪一下异常发生的原因
修改代码,保证发生异常后能及时关闭所有连接并释放资源~
------解决方案--------------------
给出code
给出exception 信息,方便大家分析
------解决方案--------------------
都是大婶级的  有意思
------解决方案--------------------
引用:
引用:
读取的时候可能是出现了错误,然后OleDbConnection就没有关闭。你应该确保无论出现什么错误,都保证OleDbConnection关闭


都写了finally,做了close(), dispose(),就能保证都关闭了?
如果这样,我就把代码再查查是否有漏的地方。

读的数据量大吗?  考虑 加个 CommandTimeout那?
也要看看 你的目录问题
------解决方案--------------------
检查是否有资源未能释放,记录异常
一旦失败,整个系统OleDb读取都会失败?Microsoft.Jet.OLEDB.4.0引擎暴了?

Microsoft.Jet.OLEDB.4.0对x64位支持不是很好,有时候会出问题,如果是x64
在项目的属性中,把“生成”中的“目标平台”从“Any CPU”改成“x86”,再重新编译就可以了。

------解决方案--------------------
这个很是奇怪了。有没有监视到,字符超长的。
可以做下限制。
1,保证连接池用完就关闭
2,加超时限制
3,指定宽度