// 拼写连接字符串,打开连接
            //Provider=Microsoft.Jet.OleDb.4.0;   2003的连接
            string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;" + "data source=" + excelName + ";Extended Properties='Excel 8.0; HDR=YES; IMEX=1'";
            OleDbConnection objConn = new OleDbConnection(strConn);
            objConn.Open();
            // 取得Excel工作簿中所有工作表
            DataTable schemaTable = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
            OleDbDataAdapter sqlada = new OleDbDataAdapter();
            DataSet ds = new DataSet();
            // 遍历工作表取得数据并存入Dataset
            foreach (DataRow dr in schemaTable.Rows)
            {
                string strSql = "Select * From [" + dr[2].ToString().Trim() + "]";//SHEET1$
                OleDbCommand objCmd = new OleDbCommand(strSql, objConn);
                sqlada.SelectCommand = objCmd;
                sqlada.Fill(ds, dr[2].ToString().Trim());
            }            objConn.Close();
            return ds;提示错误是:未指定的错误 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: 未指定的错误数据库打开那有问题,网上找的好像是说我datareader什么的没关闭,我都试了关闭,还是有问题!大家帮忙找找原因,愁死了!

解决方案 »

  1.   

    若要解决此问题,启用模拟的用户帐户在 Temp 文件夹中的读/写权限。若要这样做,请按照下列步骤操作:
    在 Windows 资源管理器中,中找到以下文件夹:
    文档 settings\ ServerName \ASPNET\Local settings\Temp
    在 ServerName 是服务器的您的名称。
    用鼠标右键单击 Temp 文件夹,然后单击 属性。
    单击 属性 对话框中的 安全 选项卡。
    在 安全 选项卡上单击 添加,然后键入 ServerName \ UserAccount 在 选择用户或组 文本框中,位置 ServerName 是您的服务器的名称,以及 UserAccount 的模拟的帐户的名称的位置。单击 确定。
    单击以选中 读取 和 写入 复选框,然后单击 确定。
    http://support.microsoft.com/kb/825738/zh-cn
      

  2.   

    我在项目中直接在浏览器中浏览可以查看,没有错误,在IIS里面就出现了上述的错误,我感觉是iis配置的问题,具体是哪我也不清楚,高手指点迷津,写下具体操作!
      

  3.   

    我靠,我终于找到原因了!  是web.config里面的错误~~~加了一句    <identity impersonate="true"/>把true换成false就行了,结贴!