首页 新闻 赞助 找找看

读取Excel中的数据时报错

0
悬赏园豆:30 [已解决问题] 解决于 2012-08-18 08:38

读取Excel中的数据存到数据库,但在读的时候报错 找不到可安装的 ISAM,这个错在本地调试时没有出现,但上传到服务器的时候就出现了,我的机器是XP的系统,服务器是2003的服务器。在网上找了很多解决方法,包括修改连接字符串和注册Excel组件,但都无效。现在将错误贴出来,希望有高手来帮忙解决,谢谢

“/fwadmin”应用程序中的服务器错误。
--------------------------------------------------------------------------------

找不到可安装的 ISAM。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.OleDb.OleDbException: 找不到可安装的 ISAM。

源错误:


行 84:                 DataSet ds = new DataSet();
行 85:     
行 86:                     sda.Fill(ds);
行 87:                     flag = true;
行 88:
 

源文件: d:\Webroot\lms_deqing\fwadmin\Manager\Module\FrameWork\SystemApp\ExamManager\paper_manage\excel_up.aspx.cs    行: 86

堆栈跟踪:


[OleDbException (0x80004005): 找不到可安装的 ISAM。]
   System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection) +969373
   System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) +86
   System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup) +29
   System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +4863644
   System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +117
   System.Data.OleDb.OleDbConnection.Open() +40
   System.Data.Common.DbDataAdapter.QuietOpen(IDbConnection connection, ConnectionState& originalState) +31
   System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +112
   System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +287
   System.Data.Common.DbDataAdapter.Fill(DataSet dataSet) +94
   excel_up.GetExcelData(String filePath, String& info) in d:\Webroot\lms_deqing\fwadmin\Manager\Module\FrameWork\SystemApp\ExamManager\paper_manage\excel_up.aspx.cs:86
   excel_up.AddExcelPaperData(String filePath, String PAPER_ID, String CONTENT_TYPE, String AUTHOR_NAME, String& info) in d:\Webroot\lms_deqing\fwadmin\Manager\Module\FrameWork\SystemApp\ExamManager\paper_manage\excel_up.aspx.cs:109
   excel_up.btnUp_Click(Object sender, EventArgs e) in d:\Webroot\lms_deqing\fwadmin\Manager\Module\FrameWork\SystemApp\ExamManager\paper_manage\excel_up.aspx.cs:52
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +111
   System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +110
   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565

也许还有人怀疑我的连接字符串,现在也贴出来,大家看下

 string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+filePath+";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";

我的代码人生的主页 我的代码人生 | 初学一级 | 园豆:7
提问于:2011-05-16 18:07
< >
分享
最佳答案
0

这个问题也拖了较长时间了,提供几个思路参考:

1、比较服务器上与本地机器的网站环境,如IIS中网站和上传文件的路径有没有空格。如果有空格,可能会造成连接串被分割。

另外,注意到你的网站路径较长,可以换个短的试试 如c:\testweb\

2、最全的连接串就在这儿了,你可以多试试。http://www.connectionstrings.com/excel

3、服务器的数据库是什么版本?有没有装office组件?注意版本。8.0应该包括97,2000,2003;12.0对应07 

可以尝试在sql server 中手工导入excel,看看有没有错。

4、在服务器上调试。或者直接用本地程序连接服务器数据库调试。

收获园豆:30
邀月 | 高人七级 |园豆:25475 | 2011-05-16 22:35
手动可以导入,接下来怎么做,请指教
我的代码人生 | 园豆:7 (初学一级) | 2011-05-17 10:15
@
我的代码人生:如果这样,可以排除数据库的问题。问题可能出在IIS。你在服务器上是新建一个网站还是应用程序?
邀月 | 园豆:25475 (高人七级) | 2011-05-17 10:21
不是新建的网站,是在网站文件夹下创建的
我的代码人生 | 园豆:7 (初学一级) | 2011-05-17 15:03
不太清楚,对IIS没很多的深入,是在网站文件夹下的一个节点,图标是一个地球
我的代码人生 | 园豆:7 (初学一级) | 2011-05-17 15:07
@
我的代码人生:你在本地也是应用程序而不是网站吗?试着新建一网站而不是在网站新建应用程序。
邀月 | 园豆:25475 (高人七级) | 2011-05-17 16:08
其他回答(1)
0

首先参考 http://www.connectionstrings.com/ 这个看看连接串行吗 http://www.cnblogs.com/zyc2/archive/2008/10/21/182492.html

是否文件路径的问题,服务器上是否有权限操作这个路径或者路径包含了中文或空格什么的

2012 | 园豆:21228 (高人七级) | 2011-05-16 22:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册