Esempio n. 1
0
        /// <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(';');
Esempio n. 2
0
            /// <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);
            }
Esempio n. 3
0
            /// <summary>
            /// 新实例
            /// </summary>
            /// <returns></returns>
            public DbHelper NewDbHelper()
            {
                var db = new DbHelper(DataKit.DbConn(ConnectionType, ConnectionString));

                return(db);
            }