yc_t преди 6 години
родител
ревизия
5481fae81e
променени са 2 файла, в които са добавени 149 реда и са изтрити 111 реда
  1. BIN
      PLCLinker/.vs/PLCLinker/v15/Server/sqlite3/storage.ide
  2. 149 111
      PLCLinker/centralController/Terminal/Terminal.cs

BIN
PLCLinker/.vs/PLCLinker/v15/Server/sqlite3/storage.ide


+ 149 - 111
PLCLinker/centralController/Terminal/Terminal.cs

@@ -158,25 +158,29 @@ namespace Terminal
         {
             if (lic != "")
             {
-                MySqlDataReader reader;
+                //MySqlDataReader reader;
+                object[] result;
                 //查询车辆是否在车辆表中
                 string checkVehicleState = "select * from vehicle where numberPlate = '" + lic + "';";
                 if (!remote)
                 {
-                    reader = Monitor.Monitor.localDBOper.Query(checkVehicleState);
+                    //reader = Monitor.Monitor.localDBOper.Query(checkVehicleState);
+                    result = Monitor.Monitor.localDBOper.Query(checkVehicleState);
                 }
                 else
                 {
-                    reader = Monitor.Monitor.remoteDBOper.Query(checkVehicleState);
+                    //reader = Monitor.Monitor.remoteDBOper.Query(checkVehicleState);
+                    result = Monitor.Monitor.remoteDBOper.Query(checkVehicleState);
                 }
-                if (reader != null && reader.Read() && reader.HasRows)
-                {
-                    try
-                    {
-                        reader.Close();
-                        reader.Dispose();
-                    }
-                    catch { }
+                //if (reader != null && reader.Read() && reader.HasRows)
+                //{
+                //    try
+                //    {
+                //        reader.Close();
+                //        reader.Dispose();
+                //    }
+                //    catch { }
+                if(result!=null && result.Length > 0) { 
                     //更新车辆状态
                     string updateVehicleState = "";
                     string updateRemoteVehicleState = "";
@@ -339,18 +343,22 @@ namespace Terminal
                                     string userLicense = GetLicenseFromTerm(term);
                                     //与云端数据比对
                                     string checkNetSql = "select * from user where userID = 1;";
-                                    MySqlDataReader readerTest = Monitor.Monitor.remoteDBOper.Query(checkNetSql);
-                                    if ( readerTest!= null && readerTest.Read() && readerTest.HasRows)
-                                    {
-                                        try
-                                        {
-                                            readerTest.Close();
-                                            readerTest.Dispose();
-                                        }
-                                        catch { }
+                                    object[] result = Monitor.Monitor.remoteDBOper.Query(checkNetSql);
+                                    //MySqlDataReader readerTest = Monitor.Monitor.remoteDBOper.Query(checkNetSql);
+                                    //if ( readerTest!= null && readerTest.Read() && readerTest.HasRows)
+                                    //{
+                                    //    try
+                                    //    {
+                                    //        readerTest.Close();
+                                    //        readerTest.Dispose();
+                                    //    }
+                                    //    catch { }
+                                    if (result!=null && result.Length>0) { 
                                         string userInfoCheckSql = "select * from usercarrelation where userID = '" + userID + "'and numberPlate = '" + userLicense + "';";
-                                        MySqlDataReader reader = Monitor.Monitor.remoteDBOper.Query(userInfoCheckSql);
-                                        if (reader != null && reader.Read() && reader.HasRows && userID != 0 && userLicense != "")
+                                        //MySqlDataReader reader = Monitor.Monitor.remoteDBOper.Query(userInfoCheckSql);
+                                        object[] objList = Monitor.Monitor.remoteDBOper.Query(userInfoCheckSql);
+                                        //if (reader != null && reader.Read() && reader.HasRows && userID != 0 && userLicense != "")
+                                        if(objList!=null && objList.Length>0 && userID != 0 && userLicense != "")
                                         {
                                             ts.licVerification = 1;//验证成功
                                             Monitor.Monitor.PLC.WriteToPLC(ts, PLCDataType.central);
@@ -364,12 +372,12 @@ namespace Terminal
                                             numReceivedStatus = 2;
                                             Log.WriteLog(LogType.process, LogFile.WARNING, "号牌验证失败");
                                         }
-                                        try
-                                        {
-                                            reader.Close();
-                                            reader.Dispose();
-                                        }
-                                        catch { }
+                                        //try
+                                        //{
+                                        //    reader.Close();
+                                        //    reader.Dispose();
+                                        //}
+                                        //catch { }
                                     }
                                     else
                                     {
@@ -460,38 +468,42 @@ namespace Terminal
                         //}
                         //查询记录ID号
                         string findRecordSql = "select parkingRecordsID from parkingrecords where receiptNum = " + term.receiptNum + ";";
-                        MySqlDataReader reader = Monitor.Monitor.localDBOper.Query(findRecordSql);
-                        MySqlDataReader remoteReader = Monitor.Monitor.remoteDBOper.Query(findRecordSql);
+                        object[] localRecords = Monitor.Monitor.localDBOper.Query(findRecordSql);
+                        object[] remoteRecords = Monitor.Monitor.remoteDBOper.Query(findRecordSql);
+                        //MySqlDataReader reader = Monitor.Monitor.localDBOper.Query(findRecordSql);
+                        //MySqlDataReader remoteReader = Monitor.Monitor.remoteDBOper.Query(findRecordSql);
                         int parkingRecordsID = 0;
                         int remoteParkingRecordsID = 0;
                         try
                         {
-                            if (reader != null && reader.Read())
-                            {
-                                parkingRecordsID = reader.GetInt32("parkingRecordsID");
-                                try
-                                {
-                                    if (reader != null)
-                                    {
-                                        reader.Close();
-                                        reader.Dispose();
-                                    }
-                                }
-                                catch { }
-                            }
-                            if (remoteReader != null && remoteReader.Read())
-                            {
-                                remoteParkingRecordsID = remoteReader.GetInt32("parkingRecordsID");
-                                try
-                                {
-                                    if (remoteReader != null)
-                                    {
-                                        remoteReader.Close();
-                                        remoteReader.Dispose();
-                                    }
-                                }
-                                catch { }
-                            }
+                            //if (reader != null && reader.Read())
+                            //{
+                            //    parkingRecordsID = reader.GetInt32("parkingRecordsID");
+                            //    try
+                            //    {
+                            //        if (reader != null)
+                            //        {
+                            //            reader.Close();
+                            //            reader.Dispose();
+                            //        }
+                            //    }
+                            //    catch { }
+                            //}
+                            //if (remoteReader != null && remoteReader.Read())
+                            //{
+                            //    remoteParkingRecordsID = remoteReader.GetInt32("parkingRecordsID");
+                            //    try
+                            //    {
+                            //        if (remoteReader != null)
+                            //        {
+                            //            remoteReader.Close();
+                            //            remoteReader.Dispose();
+                            //        }
+                            //    }
+                            //    catch { }
+                            //}
+                            if(localRecords!=null && localRecords.Length > 0) { parkingRecordsID = (int)localRecords[0]; }
+                            if (remoteRecords != null && remoteRecords.Length > 0) { remoteParkingRecordsID = (int)remoteRecords[0]; }
                         }
                         catch (Exception e) { Log.WriteLog(LogType.process, LogFile.ERROR, "查询停车记录id失败"); ; Console.WriteLine(e.Message); };
                         //更新本地车辆表
@@ -563,21 +575,29 @@ namespace Terminal
             string parkRecordsSql = "select parkingRecordsID,userID,numberPlate,realParkTime from parkingrecords where receiptNum = " + receipt + ";";
             try
             {
-                MySqlDataReader reader = Monitor.Monitor.localDBOper.Query(parkRecordsSql);
-                if (reader != null && reader.Read())
+                object[] result = Monitor.Monitor.localDBOper.Query(parkRecordsSql);
+                if(result!=null && result.Length >= 4)
                 {
-                    object[] receiver = new object[4];
-                    reader.GetValues(receiver);
-                    recordID = (int)receiver[0];
-                    userID = (int)receiver[1];
-                    numberPlate = (string)receiver[2];
-                    realParkTime = (string)receiver[3];
-                }
-                if (reader != null)
-                {
-                    reader.Close();
-                    reader.Dispose();
+                    recordID = (int)result[0];
+                    userID = (int)result[1];
+                    numberPlate = (string)result[2];
+                    realParkTime = (string)result[3];
                 }
+                //MySqlDataReader reader = Monitor.Monitor.localDBOper.Query(parkRecordsSql);
+                //if (reader != null && reader.Read())
+                //{
+                //    object[] receiver = new object[4];
+                //    reader.GetValues(receiver);
+                //    recordID = (int)receiver[0];
+                //    userID = (int)receiver[1];
+                //    numberPlate = (string)receiver[2];
+                //    realParkTime = (string)receiver[3];
+                //}
+                //if (reader != null)
+                //{
+                //    reader.Close();
+                //    reader.Dispose();
+                //}
 
             }
             catch (Exception e) { Log.WriteLog(LogType.process, LogFile.ERROR, "根据凭证号查询停车记录失败"); Console.WriteLine(e.Message); return false; }
@@ -675,18 +695,20 @@ namespace Terminal
                     string remoteParkRecordsSql = "select parkingRecordsID from parkingrecords where receiptNum = " + receiptNum + ";";
                     try
                     {
-                        MySqlDataReader reader = Monitor.Monitor.remoteDBOper.Query(remoteParkRecordsSql);
-                        if (reader != null && reader.Read())
-                        {
-                            object[] receiver = new object[1];
-                            reader.GetValues(receiver);
-                            remoteParkingRecordsID = (int)receiver[0];
-                        }
-                        if (reader != null)
-                        {
-                            reader.Close();
-                            reader.Dispose();
-                        }
+                        object[] result = Monitor.Monitor.remoteDBOper.Query(remoteParkRecordsSql);
+                        if(result!=null && result.Length > 0) { remoteParkingRecordsID = (int)result[0]; }
+                        //MySqlDataReader reader = Monitor.Monitor.remoteDBOper.Query(remoteParkRecordsSql);
+                        //if (reader != null && reader.Read())
+                        //{
+                        //    object[] receiver = new object[1];
+                        //    reader.GetValues(receiver);
+                        //    remoteParkingRecordsID = (int)receiver[0];
+                        //}
+                        //if (reader != null)
+                        //{
+                        //    reader.Close();
+                        //    reader.Dispose();
+                        //}
                     }
                     catch (Exception e) { Console.WriteLine(e.Message); }
                     //本地存在号牌,后续操作
@@ -702,27 +724,39 @@ namespace Terminal
                         string vipInfoSql = "select orderRecordsID,monthCardType,monthCardTime from vehicle where numberPlate = '" + numberPlate + "';";
                         try
                         {
-                            MySqlDataReader reader = Monitor.Monitor.localDBOper.Query(vipInfoSql);
-                            if (reader != null && reader.Read())
+                            object[] result = Monitor.Monitor.localDBOper.Query(vipInfoSql);
+                            //MySqlDataReader reader = Monitor.Monitor.localDBOper.Query(vipInfoSql);
+                            //if (reader != null && reader.Read())
+                            if (result!=null && result.Length>=3)
                             {
-                                object[] receiver = new object[3];
-                                reader.GetValues(receiver);
-                                Console.WriteLine(receiver[2].GetType());
-                                if (!receiver[0].GetType().Equals(typeof(DBNull)))
+                                //object[] receiver = new object[3];
+                                //reader.GetValues(receiver);
+
+                                //if (!receiver[0].GetType().Equals(typeof(DBNull)))
+                                //{
+                                //    orderRecordsID = (int)receiver[0];
+                                //}
+                                //if (!receiver[1].GetType().Equals(typeof(DBNull)))
+                                //{
+                                //    monthCardType = (int)(UInt32)receiver[1];
+                                //}
+                                //if (!receiver[2].GetType().Equals(typeof(DBNull)))
+                                //{
+                                //    monthCardTime = (string)receiver[2];
+                                //}
+                                if (!result[0].GetType().Equals(typeof(DBNull)))
                                 {
-                                    orderRecordsID = (int)receiver[0];
+                                    orderRecordsID = (int)result[0];
                                 }
-                                if (!receiver[1].GetType().Equals(typeof(DBNull)))
+                                if (!result[1].GetType().Equals(typeof(DBNull)))
                                 {
-                                    monthCardType = (int)(UInt32)receiver[1];
+                                    monthCardType = (int)(UInt32)result[1];
                                 }
-                                if (!receiver[2].GetType().Equals(typeof(DBNull)))
+                                if (!result[2].GetType().Equals(typeof(DBNull)))
                                 {
-                                    monthCardTime = (string)receiver[2];
+                                    monthCardTime = (string)result[2];
                                 }
-                                //orderRecordsID = (Int32)receiver[0];
-                                //monthCardType = (Int32)receiver[1];
-                                //monthCardTime = (string)receiver[2];
+
                                 monthCardTimeLength = DateTime.Parse(monthCardTime) - DateTime.Now;
                                 if (monthCardTimeLength.TotalHours <= 0)
                                 {
@@ -730,23 +764,27 @@ namespace Terminal
                                 }
                                 Log.WriteLog(LogType.process, LogFile.INFO, "已获取本地预约与月卡信息");
                             }
-                            if (reader != null)
-                            {
-                                reader.Close();
-                                reader.Dispose();
-                            }
+                            //if (reader != null)
+                            //{
+                            //    reader.Close();
+                            //    reader.Dispose();
+                            //}
                         }
                         catch (Exception e) { Console.WriteLine(e.Message); }
                         //云端VIP信息
                         try
                         {
-                            MySqlDataReader reader = Monitor.Monitor.remoteDBOper.Query(vipInfoSql);
-                            if (reader != null && reader.Read())
+                            object[] result = Monitor.Monitor.remoteDBOper.Query(vipInfoSql);
+                            //MySqlDataReader reader = Monitor.Monitor.remoteDBOper.Query(vipInfoSql);
+                            //if (reader != null && reader.Read())
+                            if(result!=null && result.Length>=3)
                             {
-                                object[] receiver = new object[3];
-                                reader.GetValues(receiver);
-                                int cardType = (int)(UInt32)receiver[1];
-                                string CardTime = (string)receiver[2];
+                                //object[] receiver = new object[3];
+                                //reader.GetValues(receiver);
+                                //int cardType = (int)(UInt32)receiver[1];
+                                //string CardTime = (string)receiver[2];
+                                int cardType = (int)(UInt32)result[1];
+                                string CardTime = (string)result[2];
                                 TimeSpan t = DateTime.Parse(CardTime) - DateTime.Now;
                                 //云端
                                 if (t.TotalHours > 0 && cardType > monthCardType)
@@ -756,11 +794,11 @@ namespace Terminal
                                 }
                                 Log.WriteLog(LogType.process, LogFile.INFO, "已获取云端预约与月卡信息");
                             }
-                            if (reader != null)
-                            {
-                                reader.Close();
-                                reader.Dispose();
-                            }
+                            //if (reader != null)
+                            //{
+                            //    reader.Close();
+                            //    reader.Dispose();
+                            //}
                         }
                         catch (Exception e) { Console.WriteLine(e.Message); }