Newer
Older
RbFreqStand / RbFreqStandMeasure / R_DataBase / Service / Impl / DetectionItemServiceImpl.cs
yangqianqian on 24 May 2021 29 KB s
using Casic.Birmm.RbFreqStandMeasure.R_DataBase.Model;
using Casic.Birmm.RbFreqStandMeasure.Tools;
using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.Data;
using System.Reflection;

namespace Casic.Birmm.RbFreqStandMeasure.R_DataBase.Service.Impl
{

    class DetectionItemServiceImpl : DetectionItemService
    {
        public long add(long deviceId, string startTime, string endTime, string stability, string accuracy, string bootFeature, string ageRate, String interval, string channelNo, string stability1, string stability10, string stability20, string stability100)
        {
            long detectionId = -1;
            int iRetval = -1;
            try
            {
                if (DbConnectService.mySqlConnect.State == ConnectionState.Closed)
                {
                    LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "addDetectionItem : 数据库链接断开");
                    iRetval = DbConnectService.openDb();
                    if (iRetval != 0)
                    {
                        LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "重连失败!");
                        return iRetval;
                    }
                }

                string sQry = "INSERT INTO r_detection_item (DEVICE_ID,START_TIME,END_TIME,STABILITY,ACCURACY,BOOT_FEATURE,AGE_RATE,STABILITY_INTERVAL,CHANNEL,STABILITY_1,STABILITY_10,STABILITY_20,STABILITY_100)" +
                    " VALUES (@DEVICE_ID,@START_TIME,@END_TIME,@STABILITY,@ACCURACY,@BOOT_FEATURE,@AGE_RATE,@INTERVAL,@CHANNEL,@STABILITY_1,@STABILITY_10,@STABILITY_20,@STABILITY_100)";

                MySqlCommand cmd = new MySqlCommand(sQry, DbConnectService.mySqlConnect);
                cmd.Parameters.Add("@DEVICE_ID", MySqlDbType.Int64, 20).Value = deviceId;
                cmd.Parameters.Add("@START_TIME", MySqlDbType.DateTime, 50).Value = Convert.ToDateTime(startTime);
                cmd.Parameters.Add("@END_TIME", MySqlDbType.DateTime, 50).Value = Convert.ToDateTime(endTime);
                cmd.Parameters.Add("@STABILITY", MySqlDbType.String, 50).Value = stability;
                cmd.Parameters.Add("@ACCURACY", MySqlDbType.String, 50).Value = accuracy;
                cmd.Parameters.Add("@BOOT_FEATURE", MySqlDbType.String, 50).Value = bootFeature;
                cmd.Parameters.Add("@AGE_RATE", MySqlDbType.String, 50).Value = ageRate;
                cmd.Parameters.Add("@INTERVAL", MySqlDbType.String, 30).Value = interval;
                cmd.Parameters.Add("@CHANNEL", MySqlDbType.String, 30).Value = channelNo;
                cmd.Parameters.Add("@STABILITY_1", MySqlDbType.String, 30).Value = stability1;
                cmd.Parameters.Add("@STABILITY_10", MySqlDbType.String, 30).Value = stability10;
                cmd.Parameters.Add("@STABILITY_20", MySqlDbType.String, 30).Value = stability20;
                cmd.Parameters.Add("@STABILITY_100", MySqlDbType.String, 30).Value = stability100;

                cmd.ExecuteNonQuery();

                sQry = "UPDATE r_device SET STATUSID=@STATUSID, CHANNEL=@CHANNEL where ID=@ID";
                cmd = new MySqlCommand(sQry, DbConnectService.mySqlConnect);
                cmd.Parameters.Add("@ID", MySqlDbType.Int64, 20).Value = deviceId;
                cmd.Parameters.Add("@STATUSID", MySqlDbType.String, 20).Value = "2";
                cmd.Parameters.Add("@CHANNEL", MySqlDbType.String, 20).Value = channelNo;

                cmd.ExecuteNonQuery();

                sQry = "SELECT max(ID) from r_detection_item";
                cmd = new MySqlCommand(sQry, DbConnectService.mySqlConnect);
               
                using (MySqlDataReader aReader = cmd.ExecuteReader())
                {
                    if (aReader.Read()) detectionId = Convert.ToInt64(aReader.GetString(0));
                    aReader.Close();
                }
                cmd.Dispose();
                iRetval = 0;
            }
            catch (MySqlException e)
            {
                LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "addDetectionItem: " + e.Message);
                iRetval = -1;
            }
            return detectionId;
        }

        public int update(long deviceId, string startTime, string endTime, string stability, string accuracy, string bootFeature, string ageRate, String interval, string counterDetec)
        {
            int iRetval = -1;
            try
            {
                if (DbConnectService.mySqlConnect.State == ConnectionState.Closed)
                {
                    LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "update : 数据库链接断开");
                    iRetval = DbConnectService.openDb();
                    if (iRetval != 0)
                    {
                        LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "重连失败!");
                        return iRetval;
                    }
                }

                string sQry = "UPDATE r_detection_item  SET START_TIME=@START_TIME,END_TIME=@END_TIME,STABILITY=@STABILITY,ACCURACY=@ACCURACY,BOOT_FEATURE=@BOOT_FEATURE,AGE_RATE=@AGE_RATE,STABILITY_INTERVAL=@INTERVAL,COUNTER_DETEC=@COUNTER_DETEC WHERE DEVICE_ID = " + deviceId;

                MySqlCommand cmd = new MySqlCommand(sQry, DbConnectService.mySqlConnect);
                cmd.Parameters.Add("@START_TIME", MySqlDbType.String, 50).Value = startTime;
                cmd.Parameters.Add("@END_TIME", MySqlDbType.String, 50).Value = endTime;
                cmd.Parameters.Add("@STABILITY", MySqlDbType.String, 10).Value = stability;
                cmd.Parameters.Add("@ACCURACY", MySqlDbType.String, 10).Value = accuracy;
                cmd.Parameters.Add("@BOOT_FEATURE", MySqlDbType.String, 10).Value = bootFeature;
                cmd.Parameters.Add("@AGE_RATE", MySqlDbType.String, 10).Value = ageRate;
                cmd.Parameters.Add("@INTERVAL", MySqlDbType.String, 30).Value = interval;
                cmd.Parameters.Add("@COUNTER_DETEC", MySqlDbType.String, 30).Value = counterDetec;

                cmd.ExecuteNonQuery();

                cmd.Dispose();
                iRetval = 0;
            }
            catch (MySqlException e)
            {
                LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "update: " + e.Message);
                iRetval = -1;
            }
            return iRetval;
        }
        public int startDetect(long detectionItemId, string stability, string accuracy, string bootFeature, string ageRate)
        {
            int iRetval = -1;

            try
            {
                if (DbConnectService.mySqlConnect.State == ConnectionState.Closed)
                {
                    LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "startDetect : 数据库链接断开");
                    iRetval = DbConnectService.openDb();
                    if (iRetval != 0)
                    {
                        LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "重连失败!");
                        return iRetval;
                    }
                }

                if (stability.Equals("") && accuracy.Equals("") && bootFeature.Equals("") && ageRate.Equals("")) return -1;

                string sQry = "UPDATE r_detection_item SET";
                if (!stability.Equals(""))
                    sQry = sQry + " STABILITY=@STABILITY";
                if (!accuracy.Equals(""))
                    sQry = sQry + " ACCURACY=@ACCURACY";
                if (!bootFeature.Equals(""))
                    sQry = sQry + " BOOT_FEATURE=@BOOT_FEATURE";
                if (!ageRate.Equals(""))
                    sQry = sQry + " AGE_RATE=@AGE_RATE";
                sQry = sQry + " where ID = " + detectionItemId;


                MySqlCommand cmd = new MySqlCommand(sQry, DbConnectService.mySqlConnect);
                cmd.Parameters.Add("@STABILITY", MySqlDbType.String, 10).Value = stability;
                cmd.Parameters.Add("@ACCURACY", MySqlDbType.String, 10).Value = accuracy;
                cmd.Parameters.Add("@BOOT_FEATURE", MySqlDbType.String, 10).Value = bootFeature;
                cmd.Parameters.Add("@AGE_RATE", MySqlDbType.String, 10).Value = ageRate;

                cmd.ExecuteNonQuery();

                cmd.Dispose();
                iRetval = 0;
            }
            catch (MySqlException e)
            {
                LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "startDetect: " + e.Message);
                iRetval = -1;
            }

            return iRetval;
        }

        public int updateDetecStatus(long detectionId, string stability, string accuracy, string bootFeature, string ageRate, string counterDetec, string stability1, string stability10, string stability20, string stability100)
        {
            int iRetval = -1;

            try
            {
                if (DbConnectService.mySqlConnect.State == ConnectionState.Closed)
                {
                    LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "updateDetecStatus : 数据库链接断开");
                    iRetval = DbConnectService.openDb();
                    if (iRetval != 0)
                    {
                        LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "重连失败!");
                        return iRetval;
                    }
                }

                if (stability.Equals("")&&stability10.Equals("") && stability20.Equals("") && stability100.Equals("") && stability1.Equals("") && accuracy.Equals("") && bootFeature.Equals("") && ageRate.Equals("")) return -1;
                
                string sQry = "UPDATE r_detection_item SET";
                if(!stability.Equals(""))
                    sQry = sQry + " STABILITY=@STABILITY,";
                if (!accuracy.Equals(""))
                    sQry = sQry + " ACCURACY=@ACCURACY,";
                if (!bootFeature.Equals(""))
                    sQry = sQry + " BOOT_FEATURE=@BOOT_FEATURE,";
                if (!ageRate.Equals(""))
                    sQry = sQry + " AGE_RATE=@AGE_RATE,";                
                if (!stability1.Equals(""))
                    sQry = sQry + " STABILITY_1=@STABILITY_1,";
                if (!stability10.Equals(""))
                    sQry = sQry + " STABILITY_10=@STABILITY_10,";
                if (!stability20.Equals(""))
                    sQry = sQry + " STABILITY_20=@STABILITY_20,";
                if (!stability100.Equals(""))
                    sQry = sQry + " STABILITY_100=@STABILITY_100,";                
                sQry = sQry + " COUNTER_DETEC=@COUNTER_DETEC where ID = " + detectionId;
                LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "sQry: " + sQry);


                MySqlCommand cmd = new MySqlCommand(sQry, DbConnectService.mySqlConnect);
                cmd.Parameters.Add("@STABILITY", MySqlDbType.String, 10).Value = stability;
                cmd.Parameters.Add("@ACCURACY", MySqlDbType.String, 10).Value = accuracy;
                cmd.Parameters.Add("@BOOT_FEATURE", MySqlDbType.String, 10).Value = bootFeature;
                cmd.Parameters.Add("@AGE_RATE", MySqlDbType.String, 10).Value = ageRate;
                cmd.Parameters.Add("@COUNTER_DETEC", MySqlDbType.String, 10).Value = counterDetec;
                cmd.Parameters.Add("@STABILITY_1", MySqlDbType.String, 10).Value = stability1;
                cmd.Parameters.Add("@STABILITY_10", MySqlDbType.String, 10).Value = stability10;
                cmd.Parameters.Add("@STABILITY_20", MySqlDbType.String, 10).Value = stability20;
                cmd.Parameters.Add("@STABILITY_100", MySqlDbType.String, 10).Value = stability100;

                cmd.ExecuteNonQuery();

                cmd.Dispose();
                iRetval = 0;
            }
            catch (MySqlException e)
            {
                LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "updateDetecStatus: " + e.Message);
                iRetval = -1;
            }

            return iRetval;
        }

        public int updateChannelNo(long detectionItemId, string channelNo)
        {
            int iRetval = -1;

            try
            {
                if (DbConnectService.mySqlConnect.State == ConnectionState.Closed)
                {
                    LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "updateChannelNo : 数据库链接断开");
                    iRetval = DbConnectService.openDb();
                    if (iRetval != 0)
                    {
                        LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "重连失败!");
                        return iRetval;
                    }
                }
                 
                string sQry = "UPDATE r_detection_item SET CHANNEL=@CHANNEL where ID = "+ detectionItemId;
                 


                MySqlCommand cmd = new MySqlCommand(sQry, DbConnectService.mySqlConnect);
                cmd.Parameters.Add("@CHANNEL", MySqlDbType.String, 10).Value = channelNo;

                cmd.ExecuteNonQuery();

                cmd.Dispose();
                iRetval = 0;
            }
            catch (MySqlException e)
            {
                LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "updateChannelNo CHANNEL: " + e.Message);
                iRetval = -1;
            }

            return iRetval;
        }

        public int stopDetection(long deviceId, long detectionItemId, string startTime, string endTime, bool isDeleteData)
        {
            int iRetval = -1;
            try
            {
                if (DbConnectService.mySqlConnect.State == ConnectionState.Closed)
                {
                    LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "stopDetection : 数据库链接断开");
                    iRetval = DbConnectService.openDb();
                    if (iRetval != 0)
                    {
                        LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "重连失败!");
                        return iRetval;
                    }
                }
                LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "停止检测 detectionItemId=======" + detectionItemId);

                string sQry = "UPDATE r_device SET STATUSID="+"1"+", CHANNEL=@CHANNEL where ID=" + deviceId;
                MySqlCommand cmd = new MySqlCommand(sQry, DbConnectService.mySqlConnect);
                cmd.Parameters.Add("@CHANNEL", MySqlDbType.String, 20).Value = "";
                cmd.ExecuteNonQuery();


                if (isDeleteData)
                {
                    sQry = "DELETE FROM r_detection_item WHERE ID=" + detectionItemId;
                    cmd = new MySqlCommand(sQry, DbConnectService.mySqlConnect);
                    cmd.ExecuteNonQuery();

                    sQry = "DELETE FROM r_detection WHERE DETECTION_ITEM_ID = " + detectionItemId;
                    cmd = new MySqlCommand(sQry, DbConnectService.mySqlConnect);
                    cmd.ExecuteNonQuery();
                }
                else
                {
                    sQry = "UPDATE r_detection_item SET END_TIME=@END_TIME, IS_DETECTING=@IS_DETECTING WHERE ID=" + detectionItemId;
                    
                    cmd = new MySqlCommand(sQry, DbConnectService.mySqlConnect);
                    cmd.Parameters.Add("@END_TIME", MySqlDbType.DateTime, 20).Value = DateTime.Now;
                    cmd.Parameters.Add("@IS_DETECTING", MySqlDbType.String, 1).Value = "0"; //0-否,1-是
                    cmd.ExecuteNonQuery();
                }

                cmd.Dispose();
                iRetval = 0;
            }
            catch (MySqlException e)
            {
                LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "stopDetection: " + e.Message);
                iRetval = -1;
            }
            return iRetval;
        }
        public DetectionItem getById(long detectionItemId)
        {
            DetectionItem detectionItem = null; 
            try
            {                
                if (DbConnectService.mySqlConnect.State == ConnectionState.Closed)
                {
                    LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "getById : 数据库链接断开");
                    int iRetval = DbConnectService.openDb();
                    if (iRetval != 0)
                    {
                        LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "重连失败!");
                        return detectionItem;
                    }
                }

                string sQry = "select * from r_detection_item WHERE ID = "+ detectionItemId;
                MySqlCommand cmd = new MySqlCommand(sQry, DbConnectService.mySqlConnect);

                using (MySqlDataReader aReader = cmd.ExecuteReader())
                {
                    while (aReader.Read())
                    {
                        detectionItem = new DetectionItem();
                        //姓名
                        if (!aReader.IsDBNull(0)) detectionItem.Id = Convert.ToInt32(aReader.GetString(0));
                        if (!aReader.IsDBNull(1)) detectionItem.DeviceId = Convert.ToInt64(aReader.GetString(1));
                        if (!aReader.IsDBNull(2)) detectionItem.StartTime = aReader.GetString(2);
                        if (!aReader.IsDBNull(3)) detectionItem.EndTime = aReader.GetString(3);
                        if (!aReader.IsDBNull(4)) detectionItem.Stability = aReader.GetString(4);
                        if (!aReader.IsDBNull(5)) detectionItem.Accuracy = aReader.GetString(5);
                        if (!aReader.IsDBNull(6)) detectionItem.BootFeature = aReader.GetString(6);
                        if (!aReader.IsDBNull(7)) detectionItem.AgeRate = aReader.GetString(7);
                        if (!aReader.IsDBNull(8)) detectionItem.Interval = aReader.GetString(8);
                        if (!aReader.IsDBNull(10)) detectionItem.Channel = aReader.GetString(10);
                        if (!aReader.IsDBNull(11)) detectionItem.Stability1 = aReader.GetString(11);
                        if (!aReader.IsDBNull(12)) detectionItem.Stability10 = aReader.GetString(12);
                        if (!aReader.IsDBNull(13)) detectionItem.Stability20 = aReader.GetString(13);
                        if (!aReader.IsDBNull(14)) detectionItem.Stability100 = aReader.GetString(14);
                        if (!aReader.IsDBNull(15)) detectionItem.IsDetecting = aReader.GetString(15);
                    }
                    aReader.Close();
                }
                cmd.Dispose();

            }
            catch (MySqlException e)
            {
                LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "getById: " + e.Message);
                return detectionItem;
            }
            return detectionItem;
        }

        public List<DetectionItem> search(long deviceId, bool isInDetection)
        {
            List<DetectionItem> detectionItemList = new List<DetectionItem>();
            try
            {
                if (DbConnectService.mySqlConnect.State == ConnectionState.Closed)
                {
                    LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "searchDetectionItem : 数据库链接断开");
                    int iRetval = DbConnectService.openDb();
                    if (iRetval != 0)
                    {
                        LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "重连失败!");
                        return null;
                    }
                }

                string sQry = "SELECT * FROM r_detection_item where DEVICE_ID = " + deviceId ;
                if (isInDetection)
                {
                    sQry = sQry + " and ('" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "' between START_TIME AND END_TIME)";
                }
                sQry = sQry +" order by END_TIME desc";
                MySqlCommand aCommand = new MySqlCommand(sQry, DbConnectService.mySqlConnect);

                using (MySqlDataReader aReader = aCommand.ExecuteReader())
                {
                    while (aReader.Read())
                    {
                        DetectionItem detectionItem = new DetectionItem();
                        //姓名
                        if (!aReader.IsDBNull(0)) detectionItem.Id = Convert.ToInt32(aReader.GetString(0));
                        if (!aReader.IsDBNull(1)) detectionItem.DeviceId = Convert.ToInt64(aReader.GetString(1));
                        if (!aReader.IsDBNull(2)) detectionItem.StartTime = aReader.GetString(2);
                        if (!aReader.IsDBNull(3)) detectionItem.EndTime = aReader.GetString(3);
                        if (!aReader.IsDBNull(4)) detectionItem.Stability = aReader.GetString(4);
                        if (!aReader.IsDBNull(5)) detectionItem.Accuracy = aReader.GetString(5);
                        if (!aReader.IsDBNull(6)) detectionItem.BootFeature = aReader.GetString(6);
                        if (!aReader.IsDBNull(7)) detectionItem.AgeRate = aReader.GetString(7);
                        if (!aReader.IsDBNull(8)) detectionItem.Interval = aReader.GetString(8);
                        if (!aReader.IsDBNull(10)) detectionItem.Channel = aReader.GetString(10);
                        if (!aReader.IsDBNull(11)) detectionItem.Stability1 = aReader.GetString(11);
                        if (!aReader.IsDBNull(12)) detectionItem.Stability10 = aReader.GetString(12);
                        if (!aReader.IsDBNull(13)) detectionItem.Stability20 = aReader.GetString(13);
                        if (!aReader.IsDBNull(14)) detectionItem.Stability100 = aReader.GetString(14);
                        detectionItemList.Add(detectionItem);
                    }
                    aReader.Close();
                    
                }
                aCommand.Dispose();
            }
            catch (MySqlException ex)
            {
                LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "searchDetectionItem: " + ex.Message);               
            }
            return detectionItemList;
        }
        public List<DetectionItem> getAll()
        {
            List<DetectionItem> detectionItemList = new List<DetectionItem>();
            try
            {
                if (DbConnectService.mySqlConnect.State == ConnectionState.Closed)
                {
                    LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "getAll : 数据库链接断开");
                    int iRetval = DbConnectService.openDb();
                    if (iRetval != 0)
                    {
                        LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "重连失败!");
                        return null;
                    }
                }

                string sQry = "SELECT * FROM r_detection_item ";
                
                MySqlCommand aCommand = new MySqlCommand(sQry, DbConnectService.mySqlConnect);

                using (MySqlDataReader aReader = aCommand.ExecuteReader())
                {
                    while (aReader.Read())
                    {
                        DetectionItem detectionItem = new DetectionItem();
                        //姓名
                        if (!aReader.IsDBNull(0)) detectionItem.Id = Convert.ToInt32(aReader.GetString(0));
                        if (!aReader.IsDBNull(1)) detectionItem.DeviceId = Convert.ToInt64(aReader.GetString(1));
                        if (!aReader.IsDBNull(2)) detectionItem.StartTime = aReader.GetString(2);
                        if (!aReader.IsDBNull(3)) detectionItem.EndTime = aReader.GetString(3);
                        if (!aReader.IsDBNull(4)) detectionItem.Stability = aReader.GetString(4);
                        if (!aReader.IsDBNull(5)) detectionItem.Accuracy = aReader.GetString(5);
                        if (!aReader.IsDBNull(6)) detectionItem.BootFeature = aReader.GetString(6);
                        if (!aReader.IsDBNull(7)) detectionItem.AgeRate = aReader.GetString(7);
                        if (!aReader.IsDBNull(8)) detectionItem.Interval = aReader.GetString(8);
                        if (!aReader.IsDBNull(10)) detectionItem.Channel = aReader.GetString(10);
                        if (!aReader.IsDBNull(11)) detectionItem.Stability1 = aReader.GetString(11);
                        if (!aReader.IsDBNull(12)) detectionItem.Stability10 = aReader.GetString(12);
                        if (!aReader.IsDBNull(13)) detectionItem.Stability20 = aReader.GetString(13);
                        if (!aReader.IsDBNull(14)) detectionItem.Stability100 = aReader.GetString(14);
                        detectionItemList.Add(detectionItem);
                    }
                    aReader.Close();
                    
                }
                aCommand.Dispose();
            }
            catch (MySqlException ex)
            {
                LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "getAll: " + ex.Message);
            }
            return detectionItemList;
        }

        public DetectionItem searchById(long detectionId)
        {
            DetectionItem detectionItem = null;
            try
            {
                if (DbConnectService.mySqlConnect.State == ConnectionState.Closed)
                {
                    LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "searchDetectionItem : 数据库链接断开");
                    int iRetval = DbConnectService.openDb();
                    if (iRetval != 0)
                    {
                        LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "重连失败!");
                        return null;
                    }
                }

                string sQry = "SELECT * FROM r_detection_item where ID = " + detectionId;
                
                MySqlCommand aCommand = new MySqlCommand(sQry, DbConnectService.mySqlConnect);
                using (MySqlDataReader aReader = aCommand.ExecuteReader())
                {
                    while (aReader.Read())
                    {
                        detectionItem = new DetectionItem();
                        //姓名
                        if (!aReader.IsDBNull(0)) detectionItem.Id = Convert.ToInt32(aReader.GetString(0));
                        if (!aReader.IsDBNull(1)) detectionItem.DeviceId = Convert.ToInt64(aReader.GetString(1));
                        if (!aReader.IsDBNull(2)) detectionItem.StartTime = aReader.GetString(2);
                        if (!aReader.IsDBNull(3)) detectionItem.EndTime = aReader.GetString(3);
                        if (!aReader.IsDBNull(4)) detectionItem.Stability = aReader.GetString(4);
                        if (!aReader.IsDBNull(5)) detectionItem.Accuracy = aReader.GetString(5);
                        if (!aReader.IsDBNull(6)) detectionItem.BootFeature = aReader.GetString(6);
                        if (!aReader.IsDBNull(7)) detectionItem.AgeRate = aReader.GetString(7);
                        if (!aReader.IsDBNull(8)) detectionItem.Interval = aReader.GetString(8);
                        if (!aReader.IsDBNull(10)) detectionItem.Channel = aReader.GetString(10);
                        if (!aReader.IsDBNull(11)) detectionItem.Stability1 = aReader.GetString(11);
                        if (!aReader.IsDBNull(12)) detectionItem.Stability10 = aReader.GetString(12);
                        if (!aReader.IsDBNull(13)) detectionItem.Stability20 = aReader.GetString(13);
                        if (!aReader.IsDBNull(14)) detectionItem.Stability100 = aReader.GetString(14);                   
                    }
                    aReader.Close();
                    
                }
                aCommand.Dispose();
                //MySqlDataAdapter adap = new MySqlDataAdapter(aCommand);
                //DataTable dt = new DataTable();
                //adap.Fill(dt);
                //aCommand.Dispose();
                //adap.Dispose();
                //if (dt != null && dt.Rows.Count > 0)
                //{
                //    foreach (DataRow row in dt.Rows)
                //    {
                //        detectionItem = new DetectionItem();
                //        if (row[0] != DBNull.Value) detectionItem.Id = Convert.ToInt64(row[0]);
                //        if (row[1] != DBNull.Value) detectionItem.DeviceId = Convert.ToInt64(row[1]);
                //        if (row[2] != DBNull.Value) detectionItem.StartTime = Convert.ToDateTime(row[2]).ToString("yyyy-MM-dd HH:mm:ss");
                //        if (row[3] != DBNull.Value) detectionItem.EndTime = Convert.ToDateTime(row[3]).ToString("yyyy-MM-dd HH:mm:ss");
                //        if (row[4] != DBNull.Value) detectionItem.Stability = row[4].ToString();
                //        if (row[5] != DBNull.Value) detectionItem.Accuracy = row[5].ToString();
                //        if (row[6] != DBNull.Value) detectionItem.BootFeature = row[6].ToString();
                //        if (row[7] != DBNull.Value) detectionItem.AgeRate = row[7].ToString();
                //        if (row[8] != DBNull.Value) detectionItem.Interval = row[8].ToString();
                //        if (row[10] != DBNull.Value) detectionItem.Channel = row[10].ToString();
                //        if (row[11] != DBNull.Value) detectionItem.Stability1 = row[11].ToString();
                //        if (row[12] != DBNull.Value) detectionItem.Stability10 = row[12].ToString();
                //        if (row[13] != DBNull.Value) detectionItem.Stability20 = row[13].ToString();
                //        if (row[14] != DBNull.Value) detectionItem.Stability100 = row[14].ToString();

                //    }
                //}
            }
            catch (MySqlException ex)
            {
                LogHelper.WriteErrorLog(MethodBase.GetCurrentMethod().DeclaringType, "searchById: " + ex.Message);
            }
            return detectionItem;
        }

    }
}