|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- using System;
- using System.Collections.Generic;
- using System.Configuration;
- using System.Data;
- using System.Linq;
- using System.Text;
-
- namespace CNAS_DBSync
- {
- public class CnasDataOperationFact
- {
- //从Config中获取目标数据库的的类型
- private static string strDataType = ConfigurationManager.AppSettings["TargetDBType"].ToString();
-
- public static ICnasDataOperation CnasDataOperation()
- {
- ICnasDataOperation operation;
-
- switch (strDataType)
- {
- case "MySQL":
- operation = new MySQLCNASDataOperation();
- break;
- case "DB2":
- default:
- operation = new DB2CNASDataOperation();
- break;
- }
- return operation;
- }
- }
-
- public interface ICnasDataOperation
- {
- //测试连接
- bool TestConnect(string strHost, string strName, string strUser, string strPwd,string strPort);
-
- //获取所有表名称
- DataTable GetAllCNASTablesName(SyncInstrumentItemInfo syncitem);
-
- //获取第一张表的表结构
- DataTable GetCNASTablesStruct(string strTableName,SyncInstrumentItemInfo syncitem);
-
- //向第一张表的表中插入数据
- int InsertDataToCNASTable(DataTable dt, SyncInstrumentItemInfo syncitem);
-
- //获取所有表的数据类型和长度
- DataTable GetCNASTableTypeLenth(string strTableName, SyncInstrumentItemInfo syncitem);
- }
-
- public class MySQLCNASDataOperation : ICnasDataOperation
- {
- public DataTable GetAllCNASTablesName(SyncInstrumentItemInfo syncitem)
- {
- MySQLBaseDAL mySQLBase = new MySQLBaseDAL();
- mySQLBase.CreateConnectString(syncitem.SyncTargetDBInfo.DBHost,syncitem.SyncTargetDBInfo.DBPort,syncitem.SyncTargetDBInfo.DBName, syncitem.SyncTargetDBInfo.DBUser,syncitem.SyncTargetDBInfo.DBPwd);
- return mySQLBase.GetTableNames(syncitem.SyncTargetDBInfo.DBName);
- }
-
- public DataTable GetCNASTablesStruct(string strTableName, SyncInstrumentItemInfo syncitem)
- {
- MySQLBaseDAL mySQLBase = new MySQLBaseDAL();
- mySQLBase.CreateConnectString(syncitem.SyncTargetDBInfo.DBHost, syncitem.SyncTargetDBInfo.DBPort, syncitem.SyncTargetDBInfo.DBName, syncitem.SyncTargetDBInfo.DBUser, syncitem.SyncTargetDBInfo.DBPwd);
- return mySQLBase.GetTableStruct(strTableName);
- }
-
- public DataTable GetCNASTableTypeLenth(string strTableName, SyncInstrumentItemInfo syncitem)
- {
- MySQLBaseDAL mySQLBase = new MySQLBaseDAL();
- mySQLBase.CreateConnectString(syncitem.SyncTargetDBInfo.DBHost, syncitem.SyncTargetDBInfo.DBPort, syncitem.SyncTargetDBInfo.DBName, syncitem.SyncTargetDBInfo.DBUser, syncitem.SyncTargetDBInfo.DBPwd);
- return mySQLBase.GetTableTypeAndLenth(strTableName);
- }
-
- public int InsertDataToCNASTable(DataTable dt, SyncInstrumentItemInfo syncitem)
- {
- MySQLBaseDAL mySQLBase = new MySQLBaseDAL();
- mySQLBase.CreateConnectString(syncitem.SyncTargetDBInfo.DBHost, syncitem.SyncTargetDBInfo.DBPort, syncitem.SyncTargetDBInfo.DBName, syncitem.SyncTargetDBInfo.DBUser, syncitem.SyncTargetDBInfo.DBPwd);
- return mySQLBase.InsertCnasData(dt,syncitem.LstSyncPramas);
- }
-
- public bool TestConnect(string strHost, string strName, string strUser, string strPwd, string strPort)
- {
- MySQLBaseDAL mySQLBase = new MySQLBaseDAL();
- mySQLBase.CreateConnectString(strHost, strPort, strName, strUser, strPwd);
- return mySQLBase.LinkCnasTest();
- }
- }
-
- public class DB2CNASDataOperation : ICnasDataOperation
- {
- public DataTable GetAllCNASTablesName(SyncInstrumentItemInfo syncitem)
- {
- BaseDAL baseDAL = new BaseDAL();
- baseDAL.CreateConnectString(syncitem.SyncTargetDBInfo.DBHost, syncitem.SyncTargetDBInfo.DBName, syncitem.SyncTargetDBInfo.DBUser, syncitem.SyncTargetDBInfo.DBPwd);
- return baseDAL.GetTableNames(syncitem.SyncTargetDBInfo.DBUser);
- }
-
- public DataTable GetCNASTablesStruct(string strTableName, SyncInstrumentItemInfo syncitem)
- {
- BaseDAL baseDAL = new BaseDAL();
- baseDAL.CreateConnectString(syncitem.SyncTargetDBInfo.DBHost, syncitem.SyncTargetDBInfo.DBName, syncitem.SyncTargetDBInfo.DBUser, syncitem.SyncTargetDBInfo.DBPwd);
- return baseDAL.GetTableStruct(strTableName);
- }
-
- public DataTable GetCNASTableTypeLenth(string strTableName, SyncInstrumentItemInfo syncitem)
- {
- throw new NotImplementedException();
- }
-
- public int InsertDataToCNASTable(DataTable dt, SyncInstrumentItemInfo syncitem)
- {
- BaseDAL baseDAL = new BaseDAL();
- baseDAL.CreateConnectString(syncitem.SyncTargetDBInfo.DBHost, syncitem.SyncTargetDBInfo.DBName, syncitem.SyncTargetDBInfo.DBUser, syncitem.SyncTargetDBInfo.DBPwd);
- return baseDAL.InsertCnasData(dt, syncitem.LstSyncPramas);
- }
-
- public bool TestConnect(string strHost, string strName, string strUser, string strPwd, string strPort)
- {
- BaseDAL basedal = new BaseDAL();
- basedal.CreateConnectString(strHost, strName, strUser, strPwd);
- return basedal.LinkCnasTest();
- }
- }
- }
|