C# 读取Excel工作表时出错

C# 读取Excel工作表时出错,c#,excel,C#,Excel,我有从c3语言读取Excel的代码: DataTable dtChildrenData = new DataTable(); OdbcConnection oConn = null; try { if (File.Exists(strSheetPath)) { oConn = new OdbcConnection();

我有从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驱动程序管理器]未找到数据源名称,并且未指定默认驱动程序

如何解决这个问题。如果回答有关配置的问题需要任何信息,请告诉我


请记住,当我在同一台机器上的IIS上部署时,它在VS本地运行得非常完美,这会导致错误

您试图引用尚未创建的DSN。通过打开“管理工具”文件夹,然后启动“数据源ODBC”小程序,可以创建其中一个。
然后,您似乎必须创建一个名为Excel文件的DSN,如果您有一台当前可以使用此功能的计算机,您可能可以从该计算机复制设置。

您可以通过提供文件路径,以无DSNL的方式完成此操作。见此帖:


这篇文章真的很棒,但是错误呢。为什么会来。我认为这个错误也会出现在你的代码中。