using Bro.Common.Helper; using Bro.M135.Common; using MySql.Data.MySqlClient; using Newtonsoft.Json; using Sunny.UI; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using Windows.Globalization.PhoneNumberFormatting; using static System.Windows.Forms.VisualStyles.VisualStyleElement.ListView; namespace Bro.M141.Process { public class M141Process_Mysql { string connStrAll = "server=127.0.0.1;port=3306;user id=root;password=123456;database=BroDB;charset=utf8"; string connStrLocal = "server=127.0.0.1;port=3306;user id=root;password=123456;database=BroDB;charset=utf8"; #region 基础操作 public void IniDBIP(string IP) { connStrAll = $"server={IP};port=3306;user id=root;password=123456;database=BroDB;charset=utf8"; } public void Operatoremysql(string sql, string connStr)//操作 { MySqlConnection con = new MySqlConnection(connStr); try { if (con.State == ConnectionState.Open) { con.Close(); } con.Open(); MySqlCommand coon = new MySqlCommand(sql, con); coon.ExecuteNonQuery(); } catch (Exception e) { CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"数据库操作异常 {e.ToString()}"); } con.Close(); } public DataTable selectdt(string str, string connStr)//查询表格 { MySqlConnection con = new MySqlConnection(connStr); DataTable dt = new DataTable(); try { if (con.State == ConnectionState.Open) { con.Close(); } con.Open(); MySqlDataAdapter da = new MySqlDataAdapter(str, con); da.Fill(dt); } catch (Exception e) { CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"数据库查询异常 {e.ToString()}"); } con.Close(); return dt; } public static string selectmysql(string str, string connStr)//查询 { MySqlConnection con = new MySqlConnection(connStr); MySqlCommand sqlCmd = new MySqlCommand(); sqlCmd.Connection = con; sqlCmd.CommandText = str; string strr = ""; try { if (con.State == ConnectionState.Open) { con.Close(); } con.Open(); strr = sqlCmd.ExecuteScalar().ToString(); } catch (Exception e) { CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"数据库查询数据异常 {e.ToString()}"); } con.Close(); return strr; } #endregion public void NewProduct(ProductModel pro) { try { string mysqlstr = $"insert into forlocal (pid,plcnum,sn,data,time) values('{pro.PID}','{pro.SEQUENCE}','{pro.SN}','{JsonConvert.SerializeObject(pro)}','{DateTime.Now.ToString("yyyyMMddHHmmss")}')"; Operatoremysql(mysqlstr, connStrLocal); } catch (Exception e) { CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"数据库forlocal插入数据异常 {e.ToString()}"); } } public void UpdateProduct(ProductModel pro) { try { string mysqlstr = $"update forlocal set data='{JsonConvert.SerializeObject(pro)}' where plcnum='{pro.SEQUENCE}'"; Operatoremysql(mysqlstr, connStrLocal); } catch (Exception e) { CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"数据库forlocal更新数据异常 {e.ToString()}"); } } public void NewForAll(ProductModel pro, string devicestr) { try { string mysqlstr = $"insert into forall (device,plcnum,sn,data,time) values('{devicestr}','{pro.SEQUENCE}','{pro.SN}','{JsonConvert.SerializeObject(pro)}','{DateTime.Now.ToString("yyyyMMddHHmmss")}')"; Operatoremysql(mysqlstr, connStrAll); } catch (Exception e) { CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"数据库forall插入数据异常 {e.ToString()}"); } } public ProductModel GetProduct(string plcnum) { try { string mysqlstr = $"select data from forlocal where plcnum='{plcnum}'"; string str= selectmysql(mysqlstr, connStrLocal); if (string.IsNullOrEmpty(str)) { return null; } else { ProductModel p = JsonConvert.DeserializeObject(str); return p; } } catch (Exception e) { CommonLogger.LogAsync(DateTime.Now, EnumHelper.LogLevel.Exception, $"数据库forlocal更新数据异常 {e.ToString()}"); } return null; } } }