#region 将EXEC 文件写入数据集中
        /// <summary>
        /// 将EXEC 文件写入数据集中
        /// 2008 - 06-21 11:09 wubin
        /// </summary>
        /// <param name="FileName">文件的路径名</param>
        /// <param name="sheetName">EXEC 表表名</param>
        /// <param name="colName">EXEC 的列名</param>
        /// <returns></returns>
        public DataSet ReadExec(string FileName, string sheetName, List<string> colName)
        {
            string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source  = " + FileName + ";Extended Properties = Excel 8.0";            OleDbConnection con = new OleDbConnection(connectionString);            StringBuilder colStrName = new StringBuilder("");
            string myColStrName = "";            if (colName.Count > 0)
            {
                foreach (string str in colName)
                {
                    colStrName.Append(str);
                    colStrName.Append(",");
                }
                myColStrName = colStrName.ToString().Substring(0, colStrName.Length - 1); //去掉最后的 , 号
            }            try
            {
                con.Open();                DataSet ds = new DataSet();                OleDbDataAdapter da = new OleDbDataAdapter(" SELECT " +myColStrName + "  FROM [" + sheetName + "$]", con);//这里老是提示不是有效名称。就是那个我画了颜色的地方、myColStrName是Exec 表的列头、[" + sheetName + "$]我写的是Exec 表的名称(文件名)。是不是我这个[" + sheetName + "$]地方赋值有问题?改怎么写。大家看看、给点意见。                da.Fill(ds, "result");                return ds;
            }
            catch (Exception err)
            {
                MessageBox.Show(err.ToString());
                return null;
            }
            finally
            {
                con.Close();
            }
        #endregion
        }

解决方案 »

  1.   

    OleDbDataAdapter da = new OleDbDataAdapter(" SELECT " +myColStrName + "  FROM [" + sheetName + "$]", con);//这里老是提示不是有效名称。就是那个我画了颜色的地方、myColStrName是Exec 表的列头、[" + sheetName + "$]我写的是Exec 表的名称(文件名)。是不是我这个[" + sheetName + "$]地方赋值有问题?改怎么写。大家看看、给点意见。为什么这么说:表的名称(文件名)
    表的名称!=文件名
    文件名是文件名,表是文件里的一个sheet
      

  2.   

    那个地方应该写sheet的名称,比如sheet1