CNAS取数仪器端升级
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

125 wiersze
5.3KB

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Configuration;
  4. using System.Data;
  5. using System.Linq;
  6. using System.Text;
  7. namespace CNAS_DBSync
  8. {
  9. public class CnasDataOperationFact
  10. {
  11. //从Config中获取目标数据库的的类型
  12. private static string strDataType = ConfigurationManager.AppSettings["TargetDBType"].ToString();
  13. public static ICnasDataOperation CnasDataOperation()
  14. {
  15. ICnasDataOperation operation;
  16. switch (strDataType)
  17. {
  18. case "MySQL":
  19. operation = new MySQLCNASDataOperation();
  20. break;
  21. case "DB2":
  22. default:
  23. operation = new DB2CNASDataOperation();
  24. break;
  25. }
  26. return operation;
  27. }
  28. }
  29. public interface ICnasDataOperation
  30. {
  31. //测试连接
  32. bool TestConnect(string strHost, string strName, string strUser, string strPwd,string strPort);
  33. //获取所有表名称
  34. DataTable GetAllCNASTablesName(SyncInstrumentItemInfo syncitem);
  35. //获取第一张表的表结构
  36. DataTable GetCNASTablesStruct(string strTableName,SyncInstrumentItemInfo syncitem);
  37. //向第一张表的表中插入数据
  38. int InsertDataToCNASTable(DataTable dt, SyncInstrumentItemInfo syncitem);
  39. //获取所有表的数据类型和长度
  40. DataTable GetCNASTableTypeLenth(string strTableName, SyncInstrumentItemInfo syncitem);
  41. }
  42. public class MySQLCNASDataOperation : ICnasDataOperation
  43. {
  44. public DataTable GetAllCNASTablesName(SyncInstrumentItemInfo syncitem)
  45. {
  46. MySQLBaseDAL mySQLBase = new MySQLBaseDAL();
  47. mySQLBase.CreateConnectString(syncitem.SyncTargetDBInfo.DBHost,syncitem.SyncTargetDBInfo.DBPort,syncitem.SyncTargetDBInfo.DBName, syncitem.SyncTargetDBInfo.DBUser,syncitem.SyncTargetDBInfo.DBPwd);
  48. return mySQLBase.GetTableNames(syncitem.SyncTargetDBInfo.DBName);
  49. }
  50. public DataTable GetCNASTablesStruct(string strTableName, SyncInstrumentItemInfo syncitem)
  51. {
  52. MySQLBaseDAL mySQLBase = new MySQLBaseDAL();
  53. mySQLBase.CreateConnectString(syncitem.SyncTargetDBInfo.DBHost, syncitem.SyncTargetDBInfo.DBPort, syncitem.SyncTargetDBInfo.DBName, syncitem.SyncTargetDBInfo.DBUser, syncitem.SyncTargetDBInfo.DBPwd);
  54. return mySQLBase.GetTableStruct(strTableName);
  55. }
  56. public DataTable GetCNASTableTypeLenth(string strTableName, SyncInstrumentItemInfo syncitem)
  57. {
  58. MySQLBaseDAL mySQLBase = new MySQLBaseDAL();
  59. mySQLBase.CreateConnectString(syncitem.SyncTargetDBInfo.DBHost, syncitem.SyncTargetDBInfo.DBPort, syncitem.SyncTargetDBInfo.DBName, syncitem.SyncTargetDBInfo.DBUser, syncitem.SyncTargetDBInfo.DBPwd);
  60. return mySQLBase.GetTableTypeAndLenth(strTableName);
  61. }
  62. public int InsertDataToCNASTable(DataTable dt, SyncInstrumentItemInfo syncitem)
  63. {
  64. MySQLBaseDAL mySQLBase = new MySQLBaseDAL();
  65. mySQLBase.CreateConnectString(syncitem.SyncTargetDBInfo.DBHost, syncitem.SyncTargetDBInfo.DBPort, syncitem.SyncTargetDBInfo.DBName, syncitem.SyncTargetDBInfo.DBUser, syncitem.SyncTargetDBInfo.DBPwd);
  66. return mySQLBase.InsertCnasData(dt,syncitem.LstSyncPramas);
  67. }
  68. public bool TestConnect(string strHost, string strName, string strUser, string strPwd, string strPort)
  69. {
  70. MySQLBaseDAL mySQLBase = new MySQLBaseDAL();
  71. mySQLBase.CreateConnectString(strHost, strPort, strName, strUser, strPwd);
  72. return mySQLBase.LinkCnasTest();
  73. }
  74. }
  75. public class DB2CNASDataOperation : ICnasDataOperation
  76. {
  77. public DataTable GetAllCNASTablesName(SyncInstrumentItemInfo syncitem)
  78. {
  79. BaseDAL baseDAL = new BaseDAL();
  80. baseDAL.CreateConnectString(syncitem.SyncTargetDBInfo.DBHost, syncitem.SyncTargetDBInfo.DBName, syncitem.SyncTargetDBInfo.DBUser, syncitem.SyncTargetDBInfo.DBPwd);
  81. return baseDAL.GetTableNames(syncitem.SyncTargetDBInfo.DBUser);
  82. }
  83. public DataTable GetCNASTablesStruct(string strTableName, SyncInstrumentItemInfo syncitem)
  84. {
  85. BaseDAL baseDAL = new BaseDAL();
  86. baseDAL.CreateConnectString(syncitem.SyncTargetDBInfo.DBHost, syncitem.SyncTargetDBInfo.DBName, syncitem.SyncTargetDBInfo.DBUser, syncitem.SyncTargetDBInfo.DBPwd);
  87. return baseDAL.GetTableStruct(strTableName);
  88. }
  89. public DataTable GetCNASTableTypeLenth(string strTableName, SyncInstrumentItemInfo syncitem)
  90. {
  91. throw new NotImplementedException();
  92. }
  93. public int InsertDataToCNASTable(DataTable dt, SyncInstrumentItemInfo syncitem)
  94. {
  95. BaseDAL baseDAL = new BaseDAL();
  96. baseDAL.CreateConnectString(syncitem.SyncTargetDBInfo.DBHost, syncitem.SyncTargetDBInfo.DBName, syncitem.SyncTargetDBInfo.DBUser, syncitem.SyncTargetDBInfo.DBPwd);
  97. return baseDAL.InsertCnasData(dt, syncitem.LstSyncPramas);
  98. }
  99. public bool TestConnect(string strHost, string strName, string strUser, string strPwd, string strPort)
  100. {
  101. BaseDAL basedal = new BaseDAL();
  102. basedal.CreateConnectString(strHost, strName, strUser, strPwd);
  103. return basedal.LinkCnasTest();
  104. }
  105. }
  106. }