string sqlstr;
sqlstr = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + strpath + ";" + "Extended Properties=Excel 8.0;";
SqlConnection conn = new SqlConnection(sqlstr);
SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM [Sheet1$]",conn);
adapter.Fill(ds,"excel");
我的vs是2005,excel貌似是2003的,请问要改什么?

解决方案 »

  1.   

    SqlConnection 不需要指明 provider
      

  2.   

    excel 2000 ~ 2003的 OleDb 连接串的格式如下:
    Provider=Microsoft.Jet.OleDb.4.0;Data Source='excel文件路径';Extended Properties='Excel 8.0;HDR=YES'excel 2007 的 OleDb 的连接串的格式如下:Provider=Microsoft.Ace.OleDb.12.0;Data Source='excel文件路径';Extended Properties='Excel 12.0;HDR=YES'
      

  3.   

    string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";
     using(OleDbConnection OleConn = new OleDbConnection(strConn))
    {
      OleConn.Open();
      String sql = "SELECT * FROM [Sheet1$]";
      OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);
      DataSet ds= new DataSet();
      OleDaExcel.Fill(ds);
      OleConn.Close();
    }
      

  4.   

    你这样写肯定对,对于sql数据库表。这样写报错。不支持不支持关键字: “provider”