读取Excel工作表时出错

时间:2010-05-04 06:41:40

标签: c# excel

我有从c3语言中读取Excel的代码:

DataTable dtChildrenData = new DataTable();
            OdbcConnection oConn = null;
            try
            {
                if (File.Exists(strSheetPath))
                {
                    oConn = new OdbcConnection();
                    oConn.ConnectionString = @"DSN=Excel Files;DBQ=" + strSheetPath + @";DriverId=1046;FIL=excel 12.0;MaxBufferSize=2048;PageTimeout=5;";

                    OdbcCommand oComm = new OdbcCommand();
                    oComm.Connection = oConn;
                    oComm.CommandText = "Select * From [Sheet1$]";

                    DataSet ds = new DataSet();
                    OdbcDataAdapter oAdapter = new OdbcDataAdapter(oComm);
                    oConn.Open();
                    oAdapter.Fill(ds);
                    dtChildrenData = ds.Tables[0];
                }
            }
            finally
            {
                oConn.Close();
            }
            return dtChildrenData;

我在IIS上部署Web应用程序时出现此错误。因为它在本地运行正常。

错误[IM002] [Microsoft] [ODBC驱动程序管理器]未找到数据源名称且未指定默认驱动程序

如何解决这个问题。如果回答这个问题所需的任何信息(关于配置)

,请告诉我

请记住,它在VS本地运行完美,当我在同一台机器上的IIS上部署它时会出错

2 个答案:

答案 0 :(得分:0)

您正试图引用尚未创建的DSN。您可以通过打开Administrative Tools文件夹然后启动Data Sources (ODBC)小程序来创建其中一个 您似乎必须创建一个名为 Excel Files 的DSN,如果您有一台当前可用的机器,您可以从该机器复制设置。

答案 1 :(得分:0)

您可以通过提供文件路径以DSNless方式执行此操作。看到这篇文章:

http://weblogs.asp.net/rajbk/archive/2009/05/02/uploading-an-excel-file-to-sql-through-an-asp-net-webform.aspx