本帖最后由 hszb1986 于 2010-10-15 09:31:38 编辑

解决方案 »

  1.   

    你看下这个pSheetname 变量的值,excel表的话后面应该有$
      

  2.   

    string StrConnection = @"selecet * from ["+ pSheetname+ "]";
      

  3.   

    应该是你连接的问题。你看一下。
     string pStrConnection= @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pFilename + ";Extended Properties=Excel 8.0";
    是不是8.0.还有就是你的EXCEL工作表的连接字符。像楼上说的。要加"$"
      

  4.   

    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();
    }
      

  5.   


    请指点,这句pSheetname是在comboBox中显示的表名。是这句的问题吗?谢谢!!
      

  6.   


    回楼上的。pSheetname是botton10 中combobox中显示的内容。 在combobox中的确会显示各表的表头如,sheet1$,sheet2$,请再次指点!谢谢!!
      

  7.   

    我的链接字符串和你的有些许不同。 XlsConnectionstring = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
                                                   + fileName + @";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1""";
    你可以试一试。
      

  8.   

    不过链接字符串有问题的话应该在oledbcConnection.Open();出错啊。
      

  9.   

    贴下我的代码,好像没啥区别啊DataSet dataset = new DataSet("KpiData");
    OleDbDataAdapter oleDbDataAdapter = new OleDbDataAdapter(sql, oleDbConnection);oleDbDataAdapter.Fill(dataset, "tblCustomers");
      

  10.   

    回10楼,我的链接没有问题。在botton10中可以链接。但是在botton2中却不能根据表如 point$进行选择显示所要数据在dataGridView1控件中。谢谢你的回复!
      

  11.   


    谢谢你,我也是参考了书上的代码,大多数读取excel的都差不多。可是我这个有一点不同就是需要在combobox中选择所要读的表进行读取数据。 你的代码和我差不多。不过我就是查不出什么问题。很疑惑。
    我想问题可能就是在两个botton控件之间数据的传递上?或者数据库绑定? 应该不需要绑定数据库啊?
      

  12.   

    另外就是我运行后 会显示“无效的SQL语句,期待INSERT,DELETE,UPDATE” 
    如图所示