2016-05-02 45 views
0

我正在处理asp.net c#应用程序,其中我从用户处取得excel文件,并将其上传到服务器后,将此文件的内容打印在我的页面上,是好的,但当我打开连接未指定的错误发生在connExcel.Open();在以下代码中:与excel文件打开连接时出现未指定的错误

private void ImportToGrid(string File_Path, string Extenstion) 
    {   
      string ConnStr = ""; 
      switch (Extenstion) 
      { 
       case ".xls": //Excel 97-03 
        ConnStr = ConfigurationManager.ConnectionStrings["Excel03ConString"].ConnectionString; 
        break; 
       case ".xlsx": //Excel 07 
        ConnStr = ConfigurationManager.ConnectionStrings["Excel07ConString"].ConnectionString; 
        break; 
      } 
      ConnStr = String.Format(ConnStr, File_Path, "No"); 
      OleDbConnection connExcel = new OleDbConnection(ConnStr); 
      OleDbCommand cmdExcel = new OleDbCommand(); 
      OleDbDataAdapter oda = new OleDbDataAdapter(); 
      DataTable dt = new DataTable(); 
      cmdExcel.Connection = connExcel; 

      connExcel.Open(); 
      DataTable dtExcelData; 
      dtExcelData = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); 
       connExcel.Close(); 

       connExcel.Open(); 
       cmdExcel.CommandText = "SELECT * From [Sheet1$]"; 
       oda.SelectCommand = cmdExcel; 
       oda.Fill(dt); 
       connExcel.Close(); 
       GridView_Excel.Caption = Path.GetFileName(File_Path); 
       ViewState["GridviewData"] = dt; 
       GridView_Excel.DataSource = ViewState["GridviewData"] as DataTable; 
       GridView_Excel.DataBind();   
    } 

该代码在开发服务器上正常工作。

请帮我:(

+0

外貌就像你在dev上安装了不同的组件版本一样私奔电脑和服务器上。 –

+0

是的,有很多项目是不同的版本安装:( –

+0

检查此http://stackoverflow.com/a/6570111/2224701 –

回答

0

我想这是所有相关的办公和AccessDatabaseEngine_X64.exe 对于我来说,我不得不在托管服务器上安装Office 2010 64,使32位IIS上 - 应用程序池安装AccessDatabaseEngine_X64.exe

然后重新启动服务器或IIS,一切都将正常工作和你在一起。 它无关的代码,我想,我是因为我有这个问题,一些服务器,有些不是。

相关问题