Files
lserp_cs_6.0/其他程序/AFKAbutment/FrmMain.cs
T
cyf ab56a9bcf7 基线 SVN r240
SVN-Revision: r240
2025-02-06 06:46:06 +00:00

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
}
}