public SyncForm(SyncTask task) { InitializeComponent(); ShowInTaskbar = false;// 不能放到OnLoad里,会导致窗体消失 if (task.TimeOut <= 0) task.TimeOut = 30; m_task = task; }
// 保存为文件 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); } }
public SyncForm(SyncTask task) { InitializeComponent(); ShowInTaskbar = false;// 不能放到OnLoad里,会导致窗体消失 if (task.TimeOut <= 0) { task.TimeOut = 30; } m_task = task; }
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); }
// 备份主调方法 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()); } }
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; }