代码如下:
            string sFile = FileUpload1.PostedFile.FileName;
            sFile = Path.GetFileName(sFile);
            string sTmp = Server.MapPath("~/upfile/") + sFile;
            FileUpload1.PostedFile.SaveAs(sTmp);
            string StrCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sTmp + ";extended properties='Excel 8.0;HDR=NO;IMEX=1;'";
            OleDbConnection DbXls = new OleDbConnection(StrCon);
            OleDbDataAdapter Da = new OleDbDataAdapter("Select A,B,C from [Sheet1$]", DbXls);
            DataSet Ds = new DataSet();
            Da.Fill(Ds);
            GridView1.DataSource = Ds.Tables[0].DefaultView;
            GridView1.DataBind();我只想导入Excel文件中的前三列(A,B,C)三列,所以用了“Select A,B,C from [Sheet1$]”但是执行时出错:“至少一个参数没有被指定值。”
改成"Select [A],[B],[C] from [Sheet1$]
也是一样的错误。请问应当怎么写?

解决方案 »

  1.   

    Excel的第一行的列的值是表的列名(字段)
      

  2.   

    Excel的第一行的列的值是表的列名(字段)
      

  3.   

    试了怎么还是“至少一个参数没有被指定值”我把第一行前三个项改成“A B C”,仍然报上面的错?
      

  4.   

    奇怪了,用select * from 导入到GridView1看了一下,列名变成了F1 F2 F3
    于是用select F1,F2,F3导入,就可以了。可是怎么会变成:
    F1 F2 F3呢?
      

  5.   

    "Select F1,F2,F3 from [Sheet1$]
      

  6.   

    为什么变成了F1 F2 F3 ?
      

  7.   

    OleDbConnection conn = new OleDbConnection(strConn);
        OleDbCommand com = new OleDbCommand("SELECT * FROM [sheet1$A0:A5]", conn);
        OleDbDataAdapter da = new OleDbDataAdapter(com);
        DataSet ds = new DataSet();
        da.Fill(ds);