Esempio n. 1
0
        public SyncForm(SyncTask task)
        {
            InitializeComponent();
            ShowInTaskbar = false;// 不能放到OnLoad里,会导致窗体消失

            if (task.TimeOut <= 0)
                task.TimeOut = 30;

            m_task = task;
        }
Esempio n. 2
0
        // 保存为文件
        private void btnSaveConfig_Click(object sender, EventArgs e)
        {
            SyncTask task = GetTask();

            if (task == null)
            {
                return;
            }

            SaveFileDialog sfd = new SaveFileDialog();

            if (!string.IsNullOrEmpty(_defaultPath))
            {
                sfd.InitialDirectory = _defaultPath;
            }
            else
            {
                sfd.InitialDirectory = System.AppDomain.CurrentDomain.BaseDirectory;
            }
            sfd.FileName = "sync.xml";
            sfd.Filter   = "Xml files (*.xml)|*.xml|All files (*.*)|*.*";
            var dialogRet = sfd.ShowDialog(this);

            if (dialogRet != DialogResult.OK)
            {
                return;
            }
            string configPath = sfd.FileName;

            try
            {
                // 加密连接字符串
                if (!string.IsNullOrEmpty(task.SourceConstr))
                {
                    task.SourceConstr = Utility.TripleDES_Encrypt(task.SourceConstr, Encoding.UTF8);
                }
                if (!string.IsNullOrEmpty(task.TargetConstr))
                {
                    task.TargetConstr = Utility.TripleDES_Encrypt(task.TargetConstr, Encoding.UTF8);
                }
                task.Encrypted = true;

                Utility.XmlSerialize(task, configPath);
                var diag = MessageBox.Show("成功保存到配置文件\r\n是否打开文件所在目录?", "打开目录", MessageBoxButtons.YesNo);
                if (diag == DialogResult.Yes)
                {
                    Process.Start("explorer.exe", @" /select," + configPath);
                }
            }
            catch (Exception exp)
            {
                MessageBox.Show("保存到文件" + configPath + "失败:\r\n" + exp);
            }
        }
Esempio n. 3
0
        public SyncForm(SyncTask task)
        {
            InitializeComponent();
            ShowInTaskbar = false;// 不能放到OnLoad里,会导致窗体消失

            if (task.TimeOut <= 0)
            {
                task.TimeOut = 30;
            }

            m_task = task;
        }
Esempio n. 4
0
        SyncTask GetTask()
        {
            string strSourceConn, strTargetConn;

            if (!CheckConn(out strSourceConn, out strTargetConn))
            {
                return(null);
            }
            if (lvTables.CheckedItems.Count <= 0)
            {
                MessageBox.Show("请选择要同步的源表");
                return(null);
            }
            var arr = new Dictionary <string, SyncItem>();

            foreach (ListViewItem item in lvTables.CheckedItems)
            {
                string target = item.SubItems[COL_TARGET].Text.Trim();
                string key    = target.ToLower();
                if (arr.ContainsKey(key))
                {
                    MessageBox.Show(target + " 目标表选择重复,请重新指定");
                    return(null);
                }
                string source = item.SubItems[COL_SOURCE].Text.Trim();

                arr.Add(key, new SyncItem
                {
                    Source        = source,
                    Target        = target,
                    IsSqlSource   = !string.IsNullOrEmpty(item.SubItems[COL_SOURCEBACK].Text),
                    TruncateOld   = item.SubItems[COL_TRUNCATE].Text == "true",
                    UseIdentifier = item.SubItems[COL_IDENTIFIER].Text == "true",
                });
            }
            var task = new SyncTask
            {
                Items        = arr.Values,
                ErrContinue  = chkErrContinue.Checked,
                AddNoLock    = chkWithNolock.Checked,
                UseTruncate  = chkUseTruncate.Checked,
                SourceConstr = strSourceConn,
                TargetConstr = strTargetConn,
            };

            return(task);
        }
Esempio n. 5
0
        // 备份主调方法

        private void btnSyncBegin_Click(object sender, EventArgs e)
        {
            SyncTask task = GetTask();

            if (task == null)
            {
                return;
            }
            try
            {
                using (var sync = new SyncForm(task))
                {
                    sync.ShowDialog(this);
                }
            }
            catch (Exception exp)
            {
                MessageBox.Show(exp.ToString());
            }
        }
Esempio n. 6
0
        SyncTask GetTask()
        {
            string strSourceConn, strTargetConn;
            if (!CheckConn(out strSourceConn, out strTargetConn))
            {
                return null;
            }
            if (lvTables.CheckedItems.Count <= 0)
            {
                MessageBox.Show("请选择要同步的源表");
                return null;
            }
            var arr = new Dictionary<string, SyncItem>();
            foreach (ListViewItem item in lvTables.CheckedItems)
            {
                string target = item.SubItems[COL_TARGET].Text.Trim();
                string key = target.ToLower();
                if (arr.ContainsKey(key))
                {
                    MessageBox.Show(target + " 目标表选择重复,请重新指定");
                    return null;
                }
                string source = item.SubItems[COL_SOURCE].Text.Trim();

                arr.Add(key, new SyncItem
                {
                    Source = source,
                    Target = target,
                    IsSqlSource = !string.IsNullOrEmpty(item.SubItems[COL_SOURCEBACK].Text),
                    TruncateOld = item.SubItems[COL_TRUNCATE].Text == "true",
                    UseIdentifier = item.SubItems[COL_IDENTIFIER].Text == "true",
                });
            }
            var task = new SyncTask
            {
                Items = arr.Values,
                ErrContinue = chkErrContinue.Checked,
                AddNoLock = chkWithNolock.Checked,
                UseTruncate = chkUseTruncate.Checked,
                SourceConstr = strSourceConn,
                TargetConstr = strTargetConn,
            };
            return task;
        }