diff --git a/CNAS_Authorize/CNAS_Authorize.csproj b/CNAS_Authorize/CNAS_Authorize.csproj
index 36cc17a..c283acc 100644
--- a/CNAS_Authorize/CNAS_Authorize.csproj
+++ b/CNAS_Authorize/CNAS_Authorize.csproj
@@ -99,6 +99,10 @@
+
+ {8E0E5F2E-2BA2-4952-9F31-34C072CD86B3}
+ CnasSynchronousCommon
+
{CB9B6D92-3CC4-46C6-92E8-A6FD0AD48041}
CnasSynchronusBLL
diff --git a/CNAS_Authorize/MachineAuth.cs b/CNAS_Authorize/MachineAuth.cs
index 1c57625..8bd8bbb 100644
--- a/CNAS_Authorize/MachineAuth.cs
+++ b/CNAS_Authorize/MachineAuth.cs
@@ -95,15 +95,6 @@ namespace CNAS_Authorize
}
}
- //获取Machine表的数据
- //m_machines = new List();
- ////TEST DATA
- //for(int i = 0; i < 15; i++)
- //{
- // Machine m = new Machine("MACHINEE"+ (i+1), "CODE" + (i + 1), "2025-02-02", i%2==0);
- // m_machines.Add(m);
- //}
-
m_rangle = new List();
m_rangle.AddRange(m_machines);
diff --git a/CNAS_Authorize/MainWindow.xaml.cs b/CNAS_Authorize/MainWindow.xaml.cs
index c8253b6..5744375 100644
--- a/CNAS_Authorize/MainWindow.xaml.cs
+++ b/CNAS_Authorize/MainWindow.xaml.cs
@@ -1,6 +1,8 @@
-using CnasSynchronusClient;
+using CnasSynchronousCommon;
+using CnasSynchronusClient;
using System;
using System.Collections.Generic;
+using System.Data;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
@@ -32,6 +34,11 @@ namespace CNAS_Authorize
}
private void Window_Loaded(object sender, RoutedEventArgs e)
+ {
+ this.LoadData();
+ }
+
+ private void LoadData()
{
m_machines = new MachineAuth();
m_machines.Load();
@@ -99,28 +106,36 @@ namespace CNAS_Authorize
private void ConfirmImport_Click(object sender, RoutedEventArgs e)
{
- //MySQLHelper.ExecuteNonQuery(strInsertSql, parameters);
- //int iReturn = CnasDataOperationFact.CnasDataOperation().InsertDataToCNASTable(ConvertDataRowToTable(drNewTarget), targetdataBase, banlanceitem.syncParamasInfos, banlanceitem.CnasInstrumentColumn, banlanceitem.lstFixedValue);
- //if (iReturn <= 0) //此时出现问题
- //{
- // if (iReturn == -1)
- // {
- // AppLog.ServiceInfo("数据库连接中断,终止本次上传。");
- // break; //此时数据库连接中断,直接跳出循环,结束本次数据同步传输
- // }
- // else if (iReturn == -2) //等于-2表示插入准备更新时发现数据一致,不再执行
- // {
- // OtherCount++;
- // }
- // else
- // {
- // ErrorCount++;
- // /*需要转换一下,否则会将整个dt全部写入日志*/
- // lstError.Add(GlobalCommonOperation.ConvertDataRowToTable(drNewTarget).Rows[0]);
- // }
-
- // bSuccess = false;
- //}
+
+ //加载CNAS数据库配置
+ var targetDataBase = FileOperation.GetLocalCnasDB();
+ if (!CnasDataOperationFact.CnasDataOperation().TestConnect(targetDataBase))
+ {
+ MessageBox.Show("CNAS数据库无法正常连接...", "提示");
+ return;
+ }
+
+ var existData = CnasDataOperationFact.CnasDataOperation().GetTableData(targetDataBase, $"select * from macaddress where MAC_ADDRESS='{edtMachine.Text.Trim()}'");
+ if(existData!=null&& existData.Rows.Count > 0)
+ {
+ MessageBox.Show("已经导入!");
+ return;
+ }
+ StringBuilder sb = new StringBuilder();
+ sb.AppendFormat($"insert into macaddress(MAC_ADDRESS,PLANTCODE,CREATETIME,FACILITY_STYLE) VALUES('{edtMachine.Text.Trim()}','{edtFactory.Text.Trim()}',now(),'999')");
+
+ //1.加载数据
+ var flag = CnasDataOperationFact.CnasDataOperation().InsertTableData(targetDataBase, sb.ToString());
+ if (flag)
+ {
+ AppLog.ServiceInfo("导入成功");
+ MessageBox.Show("导入成功...", "提示");
+ this.LoadData();
+ }
+ else
+ {
+ MessageBox.Show("导入失败...", "提示");
+ }
}
private void DownloadActivationCode_Click(object sender, RoutedEventArgs e)
@@ -133,7 +148,7 @@ namespace CNAS_Authorize
{
// 生成激活码
string activationCode = GenerateActivationCode(machine.MachineCode);
-
+
// 创建保存文件对话框
var saveFileDialog = new Microsoft.Win32.SaveFileDialog
{
@@ -147,7 +162,7 @@ namespace CNAS_Authorize
// 将激活码写入文件
System.IO.File.WriteAllText(saveFileDialog.FileName, activationCode);
MessageBox.Show("激活码已成功保存!", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
-
+
// 更新状态
machine.IsGenerated = true;
refreshBind();
@@ -170,7 +185,7 @@ namespace CNAS_Authorize
string input = machineCode + DateTime.Now.ToString("yyyyMMdd");
byte[] inputBytes = Encoding.UTF8.GetBytes(input);
byte[] hashBytes = md5.ComputeHash(inputBytes);
-
+
// 转换为16进制字符串
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hashBytes.Length; i++)
diff --git a/CNAS_DBSync/ActivationForm.Designer.cs b/CNAS_DBSync/ActivationForm.Designer.cs
new file mode 100644
index 0000000..94f0bef
--- /dev/null
+++ b/CNAS_DBSync/ActivationForm.Designer.cs
@@ -0,0 +1,115 @@
+namespace CNAS_DBSync
+{
+ partial class ActivationForm
+ {
+ private System.ComponentModel.IContainer components = null;
+
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ private void InitializeComponent()
+ {
+ this.lblTitle = new System.Windows.Forms.Label();
+ this.lblDescription = new System.Windows.Forms.Label();
+ this.lblActivationCode = new System.Windows.Forms.Label();
+ this.txtActivationCode = new System.Windows.Forms.TextBox();
+ this.btnActivate = new System.Windows.Forms.Button();
+ this.lnkDownloadCode = new System.Windows.Forms.LinkLabel();
+ this.SuspendLayout();
+ //
+ // lblTitle
+ //
+ this.lblTitle.Location = new System.Drawing.Point(0, 0);
+ this.lblTitle.Name = "lblTitle";
+ this.lblTitle.Size = new System.Drawing.Size(100, 23);
+ this.lblTitle.TabIndex = 0;
+ //
+ // lblDescription
+ //
+ this.lblDescription.Font = new System.Drawing.Font("微软雅黑", 10F);
+ this.lblDescription.ForeColor = System.Drawing.Color.Red;
+ this.lblDescription.Location = new System.Drawing.Point(20, 60);
+ this.lblDescription.Name = "lblDescription";
+ this.lblDescription.Size = new System.Drawing.Size(560, 40);
+ this.lblDescription.TabIndex = 1;
+ this.lblDescription.Text = "请点击上方按钮下载机器识别码,然后将机器识别码发给平台管理员申请授权文件后进行激活,激活后才可正常使用取数仪器客户端。";
+ //
+ // lblActivationCode
+ //
+ this.lblActivationCode.AutoSize = true;
+ this.lblActivationCode.Location = new System.Drawing.Point(20, 120);
+ this.lblActivationCode.Name = "lblActivationCode";
+ this.lblActivationCode.Size = new System.Drawing.Size(82, 24);
+ this.lblActivationCode.TabIndex = 2;
+ this.lblActivationCode.Text = "激活码:";
+ //
+ // txtActivationCode
+ //
+ this.txtActivationCode.Location = new System.Drawing.Point(20, 140);
+ this.txtActivationCode.Multiline = true;
+ this.txtActivationCode.Name = "txtActivationCode";
+ this.txtActivationCode.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
+ this.txtActivationCode.Size = new System.Drawing.Size(560, 150);
+ this.txtActivationCode.TabIndex = 0;
+ //
+ // btnActivate
+ //
+ this.btnActivate.Location = new System.Drawing.Point(250, 310);
+ this.btnActivate.Name = "btnActivate";
+ this.btnActivate.Size = new System.Drawing.Size(100, 30);
+ this.btnActivate.TabIndex = 3;
+ this.btnActivate.Text = "输入激活";
+ this.btnActivate.Click += new System.EventHandler(this.btnActivate_Click);
+ //
+ // lnkDownloadCode
+ //
+ this.lnkDownloadCode.ActiveLinkColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(102)))), ((int)(((byte)(204)))));
+ this.lnkDownloadCode.AutoSize = true;
+ this.lnkDownloadCode.Font = new System.Drawing.Font("微软雅黑", 10F);
+ this.lnkDownloadCode.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
+ this.lnkDownloadCode.LinkColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(102)))), ((int)(((byte)(204)))));
+ this.lnkDownloadCode.Location = new System.Drawing.Point(20, 23);
+ this.lnkDownloadCode.Name = "lnkDownloadCode";
+ this.lnkDownloadCode.Size = new System.Drawing.Size(152, 27);
+ this.lnkDownloadCode.TabIndex = 4;
+ this.lnkDownloadCode.TabStop = true;
+ this.lnkDownloadCode.Text = "下载机器识别码";
+ this.lnkDownloadCode.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lnkDownloadCode_LinkClicked);
+ //
+ // ActivationForm
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(11F, 24F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(600, 360);
+ this.Controls.Add(this.lblTitle);
+ this.Controls.Add(this.lblDescription);
+ this.Controls.Add(this.lblActivationCode);
+ this.Controls.Add(this.txtActivationCode);
+ this.Controls.Add(this.btnActivate);
+ this.Controls.Add(this.lnkDownloadCode);
+ this.Font = new System.Drawing.Font("微软雅黑", 9F);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
+ this.MaximizeBox = false;
+ this.MinimizeBox = false;
+ this.Name = "ActivationForm";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "下载机器识别码";
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ private System.Windows.Forms.Label lblTitle;
+ private System.Windows.Forms.Label lblDescription;
+ private System.Windows.Forms.Label lblActivationCode;
+ private System.Windows.Forms.TextBox txtActivationCode;
+ private System.Windows.Forms.Button btnActivate;
+ private System.Windows.Forms.LinkLabel lnkDownloadCode;
+ }
+}
\ No newline at end of file
diff --git a/CNAS_DBSync/ActivationForm.cs b/CNAS_DBSync/ActivationForm.cs
new file mode 100644
index 0000000..27aaf50
--- /dev/null
+++ b/CNAS_DBSync/ActivationForm.cs
@@ -0,0 +1,173 @@
+using System;
+using System.Text;
+using System.Windows.Forms;
+using System.Management;
+using System.Net.NetworkInformation;
+using System.Collections.Generic;
+using System.IO;
+
+namespace CNAS_DBSync
+{
+ public partial class ActivationForm : Form
+ {
+ public bool IsActivated { get; private set; }
+
+ public ActivationForm()
+ {
+ InitializeComponent();
+ IsActivated = false;
+ }
+
+ private void btnActivate_Click(object sender, EventArgs e)
+ {
+ string activationCode = txtActivationCode.Text.Trim();
+ if (string.IsNullOrEmpty(activationCode))
+ {
+ MessageBox.Show("请输入激活码!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
+ return;
+ }
+
+ try
+ {
+ if (ValidateActivationCode(activationCode))
+ {
+ IsActivated = true;
+ this.DialogResult = DialogResult.OK;
+ this.Close();
+ }
+ else
+ {
+ MessageBox.Show("激活码无效!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show($"激活失败:{ex.Message}", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+
+ private void lnkDownloadCode_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
+ {
+ try
+ {
+ string machineCode = GetMachineCode();
+
+ // 创建保存文件对话框
+ var saveFileDialog = new SaveFileDialog
+ {
+ FileName = $"机器码_{DateTime.Now:yyyyMMdd}",
+ DefaultExt = ".txt",
+ Filter = "文本文件|*.txt"
+ };
+
+ if (saveFileDialog.ShowDialog() == DialogResult.OK)
+ {
+ File.WriteAllText(saveFileDialog.FileName, machineCode);
+ MessageBox.Show("机器码已成功保存!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show($"获取机器码失败:{ex.Message}", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+
+ private string GetMachineCode()
+ {
+ StringBuilder machineCode = new StringBuilder();
+
+ // 获取CPU ID
+ string cpuId = GetCPUId();
+ machineCode.Append(cpuId);
+
+ // 获取所有MAC地址
+ List macAddresses = GetMACAddresses();
+ foreach (string mac in macAddresses)
+ {
+ machineCode.Append("_").Append(mac);
+ }
+
+ return machineCode.ToString();
+ }
+
+ private string GetCPUId()
+ {
+ try
+ {
+ using (ManagementClass mc = new ManagementClass("Win32_Processor"))
+ {
+ ManagementObjectCollection moc = mc.GetInstances();
+ foreach (ManagementObject mo in moc)
+ {
+ return mo.Properties["ProcessorId"].Value.ToString();
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ throw new Exception("获取CPU ID失败: " + ex.Message);
+ }
+ return string.Empty;
+ }
+
+ private List GetMACAddresses()
+ {
+ List macAddresses = new List();
+ try
+ {
+ NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
+ foreach (NetworkInterface adapter in nics)
+ {
+ // 只获取物理网卡的MAC地址
+ if (adapter.NetworkInterfaceType == NetworkInterfaceType.Ethernet ||
+ adapter.NetworkInterfaceType == NetworkInterfaceType.Wireless80211)
+ {
+ string mac = adapter.GetPhysicalAddress().ToString();
+ if (!string.IsNullOrEmpty(mac))
+ {
+ macAddresses.Add(mac);
+ }
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ throw new Exception("获取MAC地址失败: " + ex.Message);
+ }
+ return macAddresses;
+ }
+
+ private bool ValidateActivationCode(string activationCode)
+ {
+ // 使用实际的机器码来验证
+ string machineCode = GetMachineCode();
+ return GenerateActivationCode(machineCode) == activationCode;
+ }
+
+ private string GenerateActivationCode(string machineCode)
+ {
+ // 这里实现激活码生成算法
+ // 示例:简单的加密算法,实际应用中应该使用更安全的加密方式
+ using (var md5 = System.Security.Cryptography.MD5.Create())
+ {
+ // 加入时间戳使得生成的激活码具有时效性
+ string input = machineCode + DateTime.Now.ToString("yyyyMMdd");
+ byte[] inputBytes = Encoding.UTF8.GetBytes(input);
+ byte[] hashBytes = md5.ComputeHash(inputBytes);
+
+ // 转换为16进制字符串
+ StringBuilder sb = new StringBuilder();
+ for (int i = 0; i < hashBytes.Length; i++)
+ {
+ sb.Append(hashBytes[i].ToString("X2"));
+ // 每4个字符添加一个分隔符,提高可读性
+ if ((i + 1) % 4 == 0 && i != hashBytes.Length - 1)
+ {
+ sb.Append("-");
+ }
+ }
+ return sb.ToString();
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/CNAS_DBSync/ActivationForm.resx b/CNAS_DBSync/ActivationForm.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/CNAS_DBSync/ActivationForm.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/CNAS_DBSync/CNAS_DBSync.csproj b/CNAS_DBSync/CNAS_DBSync.csproj
index 2d1d911..012f8fc 100644
--- a/CNAS_DBSync/CNAS_DBSync.csproj
+++ b/CNAS_DBSync/CNAS_DBSync.csproj
@@ -63,6 +63,12 @@
+
+ Form
+
+
+ ActivationForm.cs
+
@@ -157,6 +163,9 @@
+
+ ActivationForm.cs
+
frmAddSubtract.cs
diff --git a/CNAS_DBSync/Program.cs b/CNAS_DBSync/Program.cs
index a61e25d..28717bf 100644
--- a/CNAS_DBSync/Program.cs
+++ b/CNAS_DBSync/Program.cs
@@ -23,8 +23,18 @@ namespace CNAS_DBSync
/*CheckAvailability(ref strMsg);*/
if (strMsg == "")
{
- if (new frmOperationPwd().ShowDialog() == DialogResult.OK)
- Application.Run(new frmSyncParams());
+ // 显示激活窗口
+ using (var activationForm = new ActivationForm())
+ {
+ if (activationForm.ShowDialog() == DialogResult.OK)
+ {
+ // 激活成功,显示主窗口
+ if (new frmOperationPwd().ShowDialog() == DialogResult.OK)
+ Application.Run(new frmSyncParams());
+ }
+ //else
+ // MessageBox.Show("激活失败");
+ }
}
else
MessageBox.Show(strMsg);
diff --git a/CnasSynchronusClient/TargetCnasData/DB2CNASDataOperation.cs b/CnasSynchronusClient/TargetCnasData/DB2CNASDataOperation.cs
index 8a7a8b6..be6e143 100644
--- a/CnasSynchronusClient/TargetCnasData/DB2CNASDataOperation.cs
+++ b/CnasSynchronusClient/TargetCnasData/DB2CNASDataOperation.cs
@@ -73,6 +73,11 @@ namespace CnasSynchronusClient
return db2DataBaseService.InsertDataToCNASTable(dt, dataBase, syncParamasInfos, strInsturmentColumn, lstFixedValue);
}
+ public bool InsertTableData(DataBaseInfo dataBase, string strSql)
+ {
+ throw new NotImplementedException();
+ }
+
public bool TestConnect(DataBaseInfo dataBase)
{
return db2DataBaseService.TestConnect(dataBase.DBHost, dataBase.DBName, dataBase.DBUser, dataBase.DBPwd, dataBase.DBPort);
diff --git a/CnasSynchronusClient/TargetCnasData/ICnasDataOperation.cs b/CnasSynchronusClient/TargetCnasData/ICnasDataOperation.cs
index acae361..ae77156 100644
--- a/CnasSynchronusClient/TargetCnasData/ICnasDataOperation.cs
+++ b/CnasSynchronusClient/TargetCnasData/ICnasDataOperation.cs
@@ -62,6 +62,16 @@ namespace CnasSynchronusClient
///
///
DataTable GetTableData(DataBaseInfo dataBase, string strSql);
+
+
+ ///
+ /// 插入某个表的数据
+ ///
+ ///
+ ///
+ ///
+ bool InsertTableData(DataBaseInfo dataBase, string strSql);
+
}
diff --git a/CnasSynchronusClient/TargetCnasData/MySQLCNASDataOperation.cs b/CnasSynchronusClient/TargetCnasData/MySQLCNASDataOperation.cs
index af2fd6c..f341989 100644
--- a/CnasSynchronusClient/TargetCnasData/MySQLCNASDataOperation.cs
+++ b/CnasSynchronusClient/TargetCnasData/MySQLCNASDataOperation.cs
@@ -95,5 +95,24 @@ namespace CnasSynchronusClient
}
return dt;
}
+
+ ///
+ /// 插入某个表的数据
+ ///
+ ///
+ ///
+ ///
+ public bool InsertTableData(DataBaseInfo dataBase, string strSql)
+ {
+ try
+ {
+ return mysqlDataBaseService.InsertTableData(dataBase, strSql);
+ }
+ catch (Exception ex)
+ {
+ AppLog.Error(ex.Message);
+ }
+ return false;
+ }
}
}
diff --git a/CnasSynchronusClient/TargetCnasData/MySQLCNASDataOperationByWeb.cs b/CnasSynchronusClient/TargetCnasData/MySQLCNASDataOperationByWeb.cs
index b6562d6..156bc8c 100644
--- a/CnasSynchronusClient/TargetCnasData/MySQLCNASDataOperationByWeb.cs
+++ b/CnasSynchronusClient/TargetCnasData/MySQLCNASDataOperationByWeb.cs
@@ -326,5 +326,10 @@ namespace CnasSynchronusClient
{
throw new NotImplementedException();
}
+
+ public bool InsertTableData(DataBaseInfo dataBase, string strSql)
+ {
+ throw new NotImplementedException();
+ }
}
}
diff --git a/CnasSynchronusClient/TargetCnasData/OracleCnasDataOperation.cs b/CnasSynchronusClient/TargetCnasData/OracleCnasDataOperation.cs
index 10ace0f..84004fa 100644
--- a/CnasSynchronusClient/TargetCnasData/OracleCnasDataOperation.cs
+++ b/CnasSynchronusClient/TargetCnasData/OracleCnasDataOperation.cs
@@ -56,6 +56,11 @@ namespace CnasSynchronusClient
return oracleDatabaseService.InsertDataToCNASTable(dt, dataBase, syncParamasInfos, strInstrumentColumn, lstFixedValue);
}
+ public bool InsertTableData(DataBaseInfo dataBase, string strSql)
+ {
+ throw new System.NotImplementedException();
+ }
+
public bool TestConnect(DataBaseInfo dataBase)
{
return oracleDatabaseService.TestConnect(dataBase.DBHost, dataBase.DBName, dataBase.DBUser, dataBase.DBPwd, dataBase.DBPort);
diff --git a/CnasSynchronusDAL/DAL/MySQLDAL.cs b/CnasSynchronusDAL/DAL/MySQLDAL.cs
index df82858..3266cb3 100644
--- a/CnasSynchronusDAL/DAL/MySQLDAL.cs
+++ b/CnasSynchronusDAL/DAL/MySQLDAL.cs
@@ -7,6 +7,7 @@ using MySql.Data.MySqlClient;
using CnasSynchronousCommon;
using CnasSynchrousModel;
using System.Reflection;
+using Devart.Common;
namespace CnasSynchronusDAL
{
@@ -554,7 +555,11 @@ namespace CnasSynchronusDAL
return dtNewFormat;
}
- //获取某个表的数据
+ ///
+ /// 获取某个表的数据
+ ///
+ ///
+ ///
public DataTable GetTableData(string strSql)
{
DataTable dt = new DataTable();
@@ -569,5 +574,24 @@ namespace CnasSynchronusDAL
return dt;
}
+ ///
+ /// 插入某个表的数据
+ ///
+ ///
+ ///
+ public bool InsertTableData(string strSql)
+ {
+
+ try
+ {
+ return MySQLHelper.ExecuteNonQuery(strSql)>0;
+ }
+ catch (Exception ex)
+ {
+ AppLog.Error(ex.Message);
+ }
+ return false;
+ }
+
}
}
diff --git a/CnasSynchronusDAL/Service/Db2DBService.cs b/CnasSynchronusDAL/Service/Db2DBService.cs
index 527548e..3f277b3 100644
--- a/CnasSynchronusDAL/Service/Db2DBService.cs
+++ b/CnasSynchronusDAL/Service/Db2DBService.cs
@@ -67,6 +67,11 @@ namespace CnasSynchronusDAL
return baseDAL.InsertCnasData(dt, syncParamasInfos, strInstrumentColumn, lstFixedValue);
}
+ public bool InsertTableData(DataBaseInfo dataBase, string strSql)
+ {
+ throw new NotImplementedException();
+ }
+
public bool TestConnect(string strHost, string strName, string strUser, string strPwd, string strPort)
{
SQLDB2DAL basedal = new SQLDB2DAL();
diff --git a/CnasSynchronusDAL/Service/MySqlDBService.cs b/CnasSynchronusDAL/Service/MySqlDBService.cs
index 5be3d55..1af188b 100644
--- a/CnasSynchronusDAL/Service/MySqlDBService.cs
+++ b/CnasSynchronusDAL/Service/MySqlDBService.cs
@@ -110,7 +110,12 @@ namespace CnasSynchronusDAL
}
- //获取某个表的数据
+ ///
+ /// 获取某个表的数据
+ ///
+ ///
+ ///
+ ///
public DataTable GetTableData(DataBaseInfo dataBase, string strSql)
{
MySQLDAL mySQLBase = new MySQLDAL();
@@ -119,5 +124,19 @@ namespace CnasSynchronusDAL
return mySQLBase.GetTableData(strSql);
}
+ ///
+ /// 插入某个表的数据
+ ///
+ ///
+ ///
+ ///
+ public bool InsertTableData(DataBaseInfo dataBase, string strSql)
+ {
+ MySQLDAL mySQLBase = new MySQLDAL();
+ mySQLBase.CreateConnectString(dataBase.DBHost, dataBase.DBPort, dataBase.DBName, dataBase.DBUser, dataBase.DBPwd);
+
+ return mySQLBase.InsertTableData(strSql);
+ }
+
}
}
diff --git a/CnasSynchronusDAL/Service/OracleDBService.cs b/CnasSynchronusDAL/Service/OracleDBService.cs
index c05eac2..4e220ad 100644
--- a/CnasSynchronusDAL/Service/OracleDBService.cs
+++ b/CnasSynchronusDAL/Service/OracleDBService.cs
@@ -86,6 +86,11 @@ namespace CnasSynchronusDAL
return OracleDAL.InsertCnasData(dt, syncParamasInfos, lstFixedValue, strInstrumentColumn);
}
+ public bool InsertTableData(DataBaseInfo dataBase, string strSql)
+ {
+ throw new NotImplementedException();
+ }
+
public bool TestConnect(string strHost, string strName, string strUser, string strPwd, string strPort)
{
OracleDAL.CreateConnection(strHost, strName, strUser, strPwd, strPort);
diff --git a/CnasSynchronusIDAL/ITargetDataBaseService.cs b/CnasSynchronusIDAL/ITargetDataBaseService.cs
index 0b03c45..16d5408 100644
--- a/CnasSynchronusIDAL/ITargetDataBaseService.cs
+++ b/CnasSynchronusIDAL/ITargetDataBaseService.cs
@@ -44,7 +44,7 @@ namespace CnasSynchronusIDAL
///
///
///
- int InsertDataToCNASTable(DataTable dt, DataBaseInfo dataBase, List syncParamasInfos,string strInstrumentColumn,List lstFixedValue = null);
+ int InsertDataToCNASTable(DataTable dt, DataBaseInfo dataBase, List syncParamasInfos, string strInstrumentColumn, List lstFixedValue = null);
///
/// 获取所有表的数据类型和长度
@@ -61,7 +61,7 @@ namespace CnasSynchronusIDAL
///
///
///
- string GetMaxTimeByTableName(DataBaseInfo dataBase, string strTableName, string strDateColumn,string strInstrumentColumn,string strInstrumentValue);
+ string GetMaxTimeByTableName(DataBaseInfo dataBase, string strTableName, string strDateColumn, string strInstrumentColumn, string strInstrumentValue);
///
/// 根据用户名密码获取登陆信息
@@ -87,5 +87,14 @@ namespace CnasSynchronusIDAL
///
///
DataTable GetTableData(DataBaseInfo dataBase, string strSql);
+
+ ///
+ /// 插入某个表的数据
+ ///
+ ///
+ ///
+ ///
+ bool InsertTableData(DataBaseInfo dataBase, string strSql);
+
}
}
diff --git a/dll/CNAS_DBSync.exe b/dll/CNAS_DBSync.exe
index e0af08e..a49102e 100644
Binary files a/dll/CNAS_DBSync.exe and b/dll/CNAS_DBSync.exe differ
diff --git a/dll/CnasSynchronusClient.dll b/dll/CnasSynchronusClient.dll
index 30aec90..3d43193 100644
Binary files a/dll/CnasSynchronusClient.dll and b/dll/CnasSynchronusClient.dll differ
diff --git a/dll/CnasSynchronusDAL.dll b/dll/CnasSynchronusDAL.dll
index a755133..2eb98bd 100644
Binary files a/dll/CnasSynchronusDAL.dll and b/dll/CnasSynchronusDAL.dll differ
diff --git a/dll/CnasSynchronusIDAL.dll b/dll/CnasSynchronusIDAL.dll
index 7f06cca..bc2ef78 100644
Binary files a/dll/CnasSynchronusIDAL.dll and b/dll/CnasSynchronusIDAL.dll differ