C#创建mysql存储过程

来源:互联网 发布:java定时任务管理系统 编辑:程序博客网 时间:2024/06/01 10:45
using Dapper;using LabCenterDataAcquisitionSystem.Util;using MySql.Data.MySqlClient;using System;using System.Collections.Generic;namespace LabCenterDataAcquisitionSystem.Mysql{    /// <summary>    ///     /// </summary>    public class AddDeviceTrans    {        public static bool AddDeviceViaTrans(Util.Device device, List<ExController> controllerList, List<ExCollector> collectorList)        {            #region 存储过程操作            using (MySqlConnection connection = new MySqlConnection(Db.mysqlConnString))            {                connection.Open();                var trans =  connection.BeginTransaction();                //Device                string sql0 = $"insert into device (device_no,device_name,device_type) values ( '{device.deviceName}','{device.deviceGuid}',{(int)device.deviceType} ) ";                var result0 = connection.Execute(sql0);                if(result0 <= 0)                {                    trans.Rollback();                    return false;                }                //Controlelr                var result1 = true;                for(var i = 0; i < controllerList.Count; i ++ )                {                    var c = controllerList[i];                    string sql1 = $"insert into controller (name,ip,port,status,create_time) values ( '{c.exControllerName}','{c.exControllerName}',{c.exControllerPort},0,{Tools.ConvertDateTimeToInt(DateTime.Now)} ) ";                    result1 = result1 &&  connection.Execute(sql1) > 0;                }                if (!result1)                {                    trans.Rollback();                    return false;                }                //Collector                var result2 = true;                for (var i = 0; i < collectorList.Count; i++)                {                    var c = collectorList[i];                    string sql2 = $"insert into collector (name,ip,port,status,create_time) values ( '{c.exCollectorName}','{c.exCollectorIp}',{c.exCollectorPort},0,{Tools.ConvertDateTimeToInt(DateTime.Now)} ) ";                    result2 = result2 && connection.Execute(sql2) > 0;                }                if (!result2)                {                    trans.Rollback();                    return false;                }                trans.Commit();                connection.Close();                return true;            }            #endregion        }    }}