ab56a9bcf7
SVN-Revision: r240
146 lines
5.1 KiB
C#
146 lines
5.1 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
using System.IO;
|
|
using Lskj.Util;
|
|
using Lskj.Core;
|
|
using MySql.Data.MySqlClient;
|
|
using System.Threading;
|
|
using System.Configuration;
|
|
|
|
namespace AFKAbutment
|
|
{
|
|
public partial class FrmMain : DevExpress.XtraEditors.XtraForm
|
|
{
|
|
public FrmMain()
|
|
{
|
|
InitializeComponent();
|
|
this.Load += OnFrmMain_Load;
|
|
this.startBtn.Click += OnstartBtn_Click;
|
|
}
|
|
#region 方法
|
|
#region 开始同步数据
|
|
/// <summary>
|
|
/// <para>说明:开始同步数据</para>.
|
|
/// <para>创建人:王一帆</para>
|
|
/// <para>创建日期:2021-06-21 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private void StartAbutment()
|
|
{
|
|
DBConfig.Instance.ServerName = this.LsDataServerText.Text;
|
|
DBConfig.Instance.DataBase = this.LsDataNameText.Text;
|
|
if (DBConfig.Instance.CreateConnection())
|
|
{
|
|
DataSet dataSet = SqlHelper.ExecuteDataSet("");//执行存储过程,获取表后循环比较并同步
|
|
|
|
|
|
}
|
|
else
|
|
{
|
|
UpdateTextBox(this.resultInfoText, "数据库连接失败!\r\n");
|
|
}
|
|
}
|
|
#endregion
|
|
#region 跨线程访问
|
|
/// <summary>
|
|
/// <para>说明:跨线程访问</para>.
|
|
/// <para>创建人:王一帆</para>
|
|
/// <para>创建日期:2021-06-21 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private void UpdateTextBox(TextBox textBox, string textStr)//跨线程访问
|
|
{
|
|
if (textBox.InvokeRequired)
|
|
{
|
|
// 当一个控件的InvokeRequired属性值为真时,说明有一个创建它以外的线程想访问它
|
|
Action<string> actionDelegate = (x) => { textBox.AppendText(textStr); };
|
|
// 或者
|
|
// Action<string> actionDelegate = delegate(string txt) { this.label2.Text = txt; };
|
|
textBox.Invoke(actionDelegate, textStr);
|
|
}
|
|
}
|
|
#endregion
|
|
#region 获取两个表的差集
|
|
/// <summary>
|
|
/// <para>说明:获取两个表的差集</para>.
|
|
/// <para>创建人:王一帆</para>
|
|
/// <para>创建日期:2021-06-21 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private DataRow[] GetExcept(DataTable firstTab, DataTable secondTab)
|
|
{
|
|
IEnumerable<DataRow> Except = firstTab.Select().AsEnumerable().Except(secondTab.Select().AsEnumerable(), DataRowComparer.Default);
|
|
return Except.ToArray();
|
|
}
|
|
#endregion
|
|
#endregion
|
|
#region 事件
|
|
#region 窗体加载时
|
|
/// <summary>
|
|
/// <para>说明:窗体加载时</para>.
|
|
/// <para>创建人:王一帆</para>
|
|
/// <para>创建日期:2021-06-21 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private void OnFrmMain_Load(object sender, EventArgs e)
|
|
{
|
|
if (File.Exists("AFKInfo.ini"))
|
|
{
|
|
this.LsDataServerText.Text = IniHelper.Read("AFKInfo.ini", "LsDataServer");
|
|
this.LsDataNameText.Text = IniHelper.Read("AFKInfo.ini", "LsDataName");
|
|
}
|
|
string connectStr = "Data Source=10.81.9.121;Port=3308;Database=avicare_access_erp;User ID=avicare_erp;Password=avicareerp@2021";
|
|
MySqlConnection cone = new MySqlConnection(connectStr);
|
|
MySqlHelper._connection = cone;//连接中间表
|
|
|
|
}
|
|
#endregion
|
|
#region 同步按钮点击
|
|
/// <summary>
|
|
/// <para>说明:同步按钮点击</para>.
|
|
/// <para>创建人:王一帆</para>
|
|
/// <para>创建日期:2021-06-21 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
private void OnstartBtn_Click(object sender, EventArgs e)
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(this.LsDataServerText.Text) && !string.IsNullOrWhiteSpace(this.LsDataNameText.Text))
|
|
{
|
|
Thread thread = new Thread(StartAbutment);// 创建线程
|
|
thread.Start();
|
|
}
|
|
else
|
|
{
|
|
this.resultInfoText.AppendText("数据库地址或数据库名不能为空!\r\n");
|
|
}
|
|
}
|
|
#endregion
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|