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

132 行
3.6KB

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Data;
  6. namespace CNAS_DBSync
  7. {
  8. public class InstrumentDataFact
  9. {
  10. public static InstrumentData CreateInstrumentDataSource(DataSourceType dataSourceType,params object[] vs)
  11. {
  12. InstrumentData instrumentData;
  13. switch (dataSourceType)
  14. {
  15. case DataSourceType.Access:
  16. instrumentData = new AccessInstrumentData(vs);
  17. break;
  18. case DataSourceType.SQL:
  19. instrumentData = new SQLInstrumentData(vs);
  20. break;
  21. case DataSourceType.SQLLite:
  22. instrumentData = new SQLiteInstrumentData(vs);
  23. break;
  24. case DataSourceType.Excel:
  25. default:
  26. instrumentData = new ExcelInstrumentData(vs);
  27. break;
  28. }
  29. return instrumentData;
  30. }
  31. }
  32. public abstract class InstrumentData
  33. {
  34. /// <summary>
  35. /// 获取数据源数据
  36. /// </summary>
  37. public abstract Dictionary<string,DataTable> GetInstrumentData();
  38. }
  39. public class ExcelInstrumentData:InstrumentData
  40. {
  41. public string StrLocalPath { get; set; }
  42. public ExcelInstrumentData(params object[] vs)
  43. {
  44. this.StrLocalPath = vs[0].ToString();
  45. }
  46. public override Dictionary<string, DataTable> GetInstrumentData()
  47. {
  48. return ExcelHelper.ReadExcelTableNameToTable(StrLocalPath);
  49. }
  50. }
  51. public class AccessInstrumentData : InstrumentData
  52. {
  53. public string StrLocalPath { get; set; }
  54. public string StrUser { get; set; }
  55. public string StrPwd { get; set; }
  56. public AccessInstrumentData(params object[] vs)
  57. {
  58. this.StrLocalPath = vs[0].ToString();
  59. if(vs[1]!=null) this.StrUser = vs[1].ToString();
  60. this.StrPwd = vs[2].ToString();
  61. }
  62. public override Dictionary<string, DataTable> GetInstrumentData()
  63. {
  64. return MdbHelper.ReadAccessTables(StrLocalPath,StrUser,StrPwd);
  65. }
  66. }
  67. public class SQLInstrumentData : InstrumentData
  68. {
  69. public string StrHost { get; set; }
  70. public string StrName { get; set; }
  71. public string StrUser { get; set; }
  72. public string StrPwd { get; set; }
  73. public SQLInstrumentData(params object[] vs)
  74. {
  75. this.StrHost = vs[0].ToString();
  76. this.StrName = vs[1].ToString();
  77. this.StrUser = vs[2].ToString();
  78. this.StrPwd = vs[3].ToString();
  79. }
  80. public override Dictionary<string, DataTable> GetInstrumentData()
  81. {
  82. throw new NotImplementedException();
  83. }
  84. private string CreateConnectionString()
  85. {
  86. return string.Format("");
  87. }
  88. }
  89. public class SQLiteInstrumentData : InstrumentData
  90. {
  91. public string StrLocalPath { get; set; }
  92. public string StrUser { get; set; }
  93. public string StrPwd { get; set; }
  94. public SQLiteInstrumentData(params object[] vs)
  95. {
  96. this.StrLocalPath = vs[0].ToString();
  97. if (vs[1] != null) this.StrUser = vs[1].ToString();
  98. this.StrPwd = vs[2].ToString();
  99. }
  100. public override Dictionary<string, DataTable> GetInstrumentData()
  101. {
  102. SQLiteHelper.SetConnectionString(StrLocalPath, StrPwd);
  103. return SQLiteHelper.ReadSQLiteTables();
  104. }
  105. }
  106. }