CNAS取数仪器端升级
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

57 行
2.3KB

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data.OleDb;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Data;
  7. namespace CNAS_DBSync
  8. {
  9. public static class MdbHelper
  10. {
  11. private static log4net.ILog log = log4net.LogManager.GetLogger("MdbHelper");
  12. /// <summary>
  13. /// 读取Excel第一个工作表的内容
  14. /// </summary>
  15. /// <param name="strPath"></param>
  16. /// <returns></returns>
  17. public static Dictionary<string, DataTable> ReadAccessTables(string strPath,string strUser,string strPwd)
  18. {
  19. Dictionary<string, DataTable> dictTables = new Dictionary<string, DataTable>();
  20. try
  21. {
  22. //连接字符串
  23. //string connstring = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + strPath + ";Extended Properties='Excel 8.0;HDR=NO;IMEX=1';");
  24. //string connstring = string.Format("Provider = Microsoft.Jet.OLEDB.4.0; Data Source={0}; User id={1};Jet OLEDB:Database Password={2}", strPath,strUser,strPwd);
  25. string connstring = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Persist Security Info=False;Jet OLEDB:Database Password={1}",strPath,strPwd);
  26. using (OleDbConnection conn = new OleDbConnection(connstring))
  27. {
  28. conn.Open();
  29. DataTable TablesName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" }); //得到所有sheet的名字
  30. string sql = "";
  31. OleDbDataAdapter ada = null;
  32. foreach (DataRow dr in TablesName.Rows)
  33. {
  34. string strTableName = dr[2].ToString();
  35. sql = string.Format("SELECT * FROM [{0}]", strTableName); //查询字符串
  36. ada = new OleDbDataAdapter(sql, connstring);
  37. DataSet set = new DataSet();
  38. ada.Fill(set);
  39. dictTables.Add(strTableName, set.Tables[0]);
  40. }
  41. }
  42. }
  43. catch (Exception ex)
  44. {
  45. //发生异常,写入日志
  46. log.Error(ex.Message);
  47. }
  48. return dictTables;
  49. }
  50. }
  51. }