using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;public partial class GridviewReadExcel : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        foreach (TableCell tc in e.Row.Cells)
        {
            tc.Attributes["style"] = "border-color:Black";
        }
        if (e.Row.RowIndex != -1)
        {
            int id = GridView1.PageIndex * GridView1.PageSize + e.Row.RowIndex + 1;
            e.Row.Cells[0].Text = id.ToString();
        }
    }    protected void Button1_Click(object sender, EventArgs e)
    {
        GridView1.DataSource = createDataSource();
        GridView1.DataBind();
    }    private DataSet createDataSource()
    {
        string strCon;
        strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("~App_Data/Employee.xls") + ";Extended Properties=Excel 11.0;";
        OleDbConnection con = new OleDbConnection(strCon);
        OleDbDataAdapter da = new OleDbDataAdapter("select * from [Employee$]", con);
        DataSet ds = new DataSet();
        da.Fill(ds);
        return ds;
    }
}
结果一点击按钮就变成如下错误
异常详细信息: System.Data.OleDb.OleDbException: 找不到可安装的 ISAM。源错误: 
行 57:         OleDbDataAdapter da = new OleDbDataAdapter("select * from [Employee$]", con);
行 58:         DataSet ds = new DataSet();
行 59:         da.Fill(ds);行 60:         return ds;
行 61:     }
 请问是怎么回事,如何修改?

解决方案 »

  1.   

    strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("~App_Data/Employee.xls") + ";Extended Properties='Excel 11.0;'";
    这里的Excel 11.0 用引号引起来试试
      

  2.   

    strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("~App_Data/Employee.xls") + ";Extended Properties=Excel 11.0;";
    路径正确吗?
    试试
    strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="App_Data/Employee.xls";Extended Properties=Excel 11.0;";strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="../App_Data/Employee.xls";Extended Properties=Excel 11.0;";strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="~App_Data/Employee.xls";Extended Properties=Excel 11.0;";
      

  3.   

    string accessCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + System.Environment.CurrentDirectory + "\\db\\examdb.mdb';Persist Security Info=False;Jet OLEDB:Database Password=xxxxxx ";
      

  4.   

    缺少命名空间  using system.data.sqlcl---