using System; using System.Collections.Generic; using System.Data.OleDb; using System.Linq; using System.Text; using System.Data; namespace CNAS_DBSync { public static class MdbHelper { private static log4net.ILog log = log4net.LogManager.GetLogger("MdbHelper"); /// /// 读取Excel第一个工作表的内容 /// /// /// public static Dictionary ReadAccessTables(string strPath,string strUser,string strPwd) { Dictionary dictTables = new Dictionary(); try { //连接字符串 //string connstring = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + strPath + ";Extended Properties='Excel 8.0;HDR=NO;IMEX=1';"); //string connstring = string.Format("Provider = Microsoft.Jet.OLEDB.4.0; Data Source={0}; User id={1};Jet OLEDB:Database Password={2}", strPath,strUser,strPwd); string connstring = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Persist Security Info=False;Jet OLEDB:Database Password={1}",strPath,strPwd); using (OleDbConnection conn = new OleDbConnection(connstring)) { conn.Open(); DataTable TablesName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" }); //得到所有sheet的名字 string sql = ""; OleDbDataAdapter ada = null; foreach (DataRow dr in TablesName.Rows) { string strTableName = dr[2].ToString(); sql = string.Format("SELECT * FROM [{0}]", strTableName); //查询字符串 ada = new OleDbDataAdapter(sql, connstring); DataSet set = new DataSet(); ada.Fill(set); dictTables.Add(strTableName, set.Tables[0]); } } } catch (Exception ex) { //发生异常,写入日志 log.Error(ex.Message); } return dictTables; } } }