/// <summary> /// 初始化 /// </summary> /// <param name="tdb"></param> /// <param name="conn"></param> /// <param name="databaseName"></param> /// <returns></returns> public static DataKit Init(SharedEnum.TypeDB tdb, string conn, string databaseName = null) { DataKit dk = null; try { //连接信息 DbConnection dbConnection = null; //打印信息 var listInfo = new List <string>(); //额外处理 SQLite if (tdb == SharedEnum.TypeDB.SQLite) { //下载 SQLite 文件 var ds = conn[12..].TrimEnd(';');
/// <summary> /// 转换为 /// </summary> /// <returns></returns> public MigrateDataTable AsMigrateDataTable() { var mdb = this; var mdt = new MigrateDataTable().ToRead(mdb); var readTables = DataKit.Init(mdt.ReadConnectionInfo).GetTable(); var writeTables = DataKit.Init(mdt.WriteConnectionInfo).GetTable(); if (readTables?.Count > 0 && writeTables?.Count > 0) { readTables.ForEach(readTable => { //读取库的表名 在 写入库 var listWriteTable = writeTables.Where(x => readTable.TableName == x.TableName).ToList(); if (listWriteTable.Count > 0) { //尝试匹配模式名 或 取第一条 var writeTable = listWriteTable.FirstOrDefault(x => x.SchemaName == readTable.SchemaName); if (writeTable == null) { writeTable = listWriteTable.First(); } var readSNTN = DbHelper.SqlSNTN(readTable.TableName, readTable.SchemaName, mdt.ReadConnectionInfo.ConnectionType); var writeSNTN = DbHelper.SqlSNTN(writeTable.TableName, writeTable.SchemaName, mdt.WriteConnectionInfo.ConnectionType); var clearTableSql = $"{(mdt.WriteConnectionInfo.ConnectionType == SharedEnum.TypeDB.SQLite ? "DELETE FROM" : "TRUNCATE TABLE")} {writeSNTN}"; mdt.ListReadWrite.Add(new ReadWriteItem { ReadDataSQL = $"SELECT * FROM {readSNTN}", WriteTableName = DbHelper.SqlSNTN(writeTable.TableName, writeTable.SchemaName), WriteDeleteSQL = mdb.WriteDeleteData ? clearTableSql : null }); } }); } return(mdt); }
/// <summary> /// 新实例 /// </summary> /// <returns></returns> public DbHelper NewDbHelper() { var db = new DbHelper(DataKit.DbConn(ConnectionType, ConnectionString)); return(db); }