public DataSet ExcelToDataSet(string sql)
        {
            OleDbConnection conn = new OleDbConnection(strcon);
            conn.Open();
            OleDbDataAdapter oada = new OleDbDataAdapter(sql, conn);            DataSet ds = new DataSet();
            oada.Fill(ds);
            conn.Close();
            return ds;
        }
传入 查询语句:
select [水源地编码],[水源地名称] from [" + sheetname[0].ToString() + "]" + " where substring([水源地编码],7, 9) like '" + departmentcode + "%'
上面这条语句出现如下错误 
  IErrorInfo.GetDescription   因   E_FAIL(0x80004005)   而失败
注:加了后面的条件语句后才出现错误 我怀疑是不是oledb 不支持substring()函数?
高手指导?

解决方案 »

  1.   

    substring([水源地编码],7, 9)
    你先查一下数据库中能行不?是不是没有那么长?
      

  2.   

    连接的EXCEL的话 是没有substring函数
      

  3.   

    就是通过ADO.net 读取Excel数据
      

  4.   

    那先把EXCEL读取到表中不行???
    或者直接用程序读取EXCEL
      

  5.   

    谢谢 各位 刚试了下 就是mid了~~