直接調式可以(不管在自己機器上還是在服務器上調式都行),發布到服務器上后出錯...
錯誤提示如下:
The Microsoft Jet database engine could not find the object 'Sheet2$'.  Make sure the object exists and that you spell its name and the path name correctly. 
描述: 在執行目前 Web 要求的過程中發生未處理的例外情形。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。 例外詳細資訊: System.Data.OleDb.OleDbException: The Microsoft Jet database engine could not find the object 'Sheet2$'.  Make sure the object exists and that you spell its name and the path name correctly.
既然找到不Sheet2$,那為什么同樣的Excel直接調試就可以,發布后就出錯呢?

解决方案 »

  1.   

    你加了[]没有? SELECT * FROM [Sheet2$]
      

  2.   


    if (FileUpload1.PostedFile.ContentLength > 0)
            {
                string dataSource = FileUpload1.PostedFile.FileName;
                string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +
                   "Data Source=" + dataSource + ";" +
                   "Extended Properties=Excel 8.0;";
                OleDbConnection conn = new OleDbConnection(strConn);
                OleDbDataAdapter myCommand = new OleDbDataAdapter("SELECT * FROM [Sheet2$]", strConn);
                DataSet myDataSet = new DataSet();
                myCommand.Fill(myDataSet);
                DataTable dt = myDataSet.Tables[0];
      

  3.   


    //这里的FileName还是client端的文件名吧?
    //试试FileUpload1.PostedFile.SaveAs到IIS上的某个目录下再开启connection.string dataSource = FileUpload1.PostedFile.FileName;