Browse Source

数据库冲突

kingwang1995 7 years ago
parent
commit
5468c6e9aa

+ 2 - 2
parkMonitor/App.config

@@ -16,7 +16,7 @@
   </Equipments>
   <appSettings>
     <!--数据库连接配置文件-->
-    <add key="SqlConnectionLocation" value="Data Source=127.0.0.1;port=3306;uid=root;pooling=true;pwd=yct;database=zxpark;CharSet=utf8;Allow Zero Datetime=true;" />
+    <add key="SqlConnectionLocation" value="Data Source=127.0.0.1;port=3306;uid=root;pooling=true;pwd=jingwang1995;database=zxpark;CharSet=utf8;Allow Zero Datetime=true;" />
     <add key="SqlConnectionStr" value="Data Source=52.77.33.102;port=3306;uid=Ubuntu1;pooling=true;pwd=12345678;database=zxpark;CharSet=utf8;Allow Zero Datetime=true;" />
     <!--<add key="SqlConnectionStr" value="Data Source=192.168.0.55;port=3306;uid=root;pooling=true;pwd=x5;database=zxpark;CharSet=utf8;Allow Zero Datetime=true;" />-->
     <!--日志写入地址配置文件-->
@@ -63,7 +63,7 @@
     <add key="licenseTime" value="30" />
     <add key="userTime" value="30" />
     <!--上位机(Web线程)IP地址及配置serverScoket的端口-->
-    <add key="WebConfig" value="192.168.111.8:9000" />
+    <add key="WebConfig" value="192.168.111.84:9000" />
     <!--<add key ="WebConfig" value="127.0.0.1:9000"/>-->
 
     <!--车库入口-->

+ 226 - 116
parkMonitor/DB/DBOperation.cs

@@ -18,7 +18,7 @@ namespace parkMonitor.DB
         {
             bool isUserNumberPlate = false;
             List<string> list = new List<string>();
-            MySqlDataReader reader;
+            MySqlDataReader reader = null;
             string sql = "select numberPlate from usercarrelation where userID = '" + userID + "'";
             con = oper.getConn();
             try
@@ -34,12 +34,24 @@ namespace parkMonitor.DB
                         list.Add(reader.GetString("numberPlate"));
                     }
                 }
+                if (reader != null)
+                {
+                    reader.Dispose();
+                }
+                if (cmd != null)
+                {
+                    cmd.Dispose();
+                }
+                if (con != null)
+                {
+                    //con.Close();
+                    con.Dispose();
+                }
             }
             catch (Exception ex)
             {
                 Console.WriteLine(ex.ToString());
             }
-            con.Close();
             if (list.Contains(numberPlate))
             {
                 isUserNumberPlate = true;
@@ -55,20 +67,13 @@ namespace parkMonitor.DB
         public int getVehicleTypeID(string numberPlate)
         {
             int vehicleTypeID = 0;
-            MySqlDataReader reader;
+            MySqlDataReader reader = null;
             string sql = "select vehicleTypeID from vehicle where numberPlate = '" + numberPlate + "'";
             con = oper.getConn();
             try
             {
                 con.Open();
-            }
-            catch (Exception ex)
-            {
-                Console.WriteLine(ex.Message);
-            }
-            cmd = oper.getComm(sql, con);
-            try
-            {
+                cmd = oper.getComm(sql, con);
                 reader = oper.getResultSet(cmd);
                 while (reader.Read())
                 {
@@ -77,32 +82,38 @@ namespace parkMonitor.DB
                         vehicleTypeID = reader.GetInt32("vehicleTypeID");
                     }
                 }
+                if (reader != null)
+                {
+                    reader.Dispose();
+                }
+                if (cmd != null)
+                {
+                    cmd.Dispose();
+                }
+                if (con != null)
+                {
+                    //con.Close();
+                    con.Dispose();
+                }
             }
             catch (Exception ex)
             {
                 Console.WriteLine(ex.ToString());
             }
-            con.Close();
             return vehicleTypeID;
         }
+
         //判断测量数据是否正确
         public bool IsDataRight(int vehicleTypeLength, int vehicleTypeWidth, int vehicleTypeHeight, int vehicleTypeWheelbase, int vehicleTypeID)
         {
             bool isDataRight = true;
-            MySqlDataReader reader;
+            MySqlDataReader reader = null;
             string sql = "select vehicleTypeLength,vehicleTypeWidth,vehicleTypeHeight,vehicleTypeWheelbase from vehicletype where vehicleTypeID = '" + vehicleTypeID + "'";
             con = oper.getConn();
             try
             {
                 con.Open();
-            }
-            catch (Exception ex)
-            {
-                Console.WriteLine(ex.Message);
-            }
-            cmd = oper.getComm(sql, con);
-            try
-            {
+                cmd = oper.getComm(sql, con);
                 reader = oper.getResultSet(cmd);
                 while (reader.Read())
                 {
@@ -126,32 +137,37 @@ namespace parkMonitor.DB
                         }
                     }
                 }
+                if (reader != null)
+                {
+                    reader.Dispose();
+                }
+                if (cmd != null)
+                {
+                    cmd.Dispose();
+                }
+                if (con != null)
+                {
+                    //con.Close();
+                    con.Dispose();
+                }
             }
             catch (Exception ex)
             {
-                Console.WriteLine(ex.ToString());
+                Console.WriteLine(ex.Message);
             }
-            con.Close();
             return isDataRight;
         }
         //查询车位位置及状态,返回list
         public List<Parking_Space> GetParkingSpace()
         {
             List<Parking_Space> lps = new List<Parking_Space>();
-            MySqlDataReader reader;
+            MySqlDataReader reader = null;
             string sql = "select * from parkingspace where parkingSpaceState = 0 ";
             con = oper.getConn();
             try
             {
                 con.Open();
-            }
-            catch (Exception ex)
-            {
-                Console.WriteLine(ex.Message);
-            }
-            cmd = oper.getComm(sql, con);
-            try
-            {
+                cmd = oper.getComm(sql, con);
                 reader = oper.getResultSet(cmd);
                 while (reader.Read())
                 {
@@ -176,12 +192,24 @@ namespace parkMonitor.DB
                         lps.Add(ps);
                     }
                 }
+                if (reader != null)
+                {
+                    reader.Dispose();
+                }
+                if (cmd != null)
+                {
+                    cmd.Dispose();
+                }
+                if (con != null)
+                {
+                    //con.Close();
+                    con.Dispose();
+                }
             }
             catch (Exception ex)
             {
                 Console.WriteLine(ex.ToString());
             }
-            con.Close();
             return lps;
         }
 
@@ -189,20 +217,14 @@ namespace parkMonitor.DB
         public List<Garage> GetGarageWeight(int garageID)
         {
             List<Garage> lgWeight = new List<Garage>();
-            MySqlDataReader reader;
+            MySqlDataReader reader = null;
             string sql = "select * from garage where garageID = '" + garageID + "'";
             con = oper.getConn();
             try
             {
                 con.Open();
-            }
-            catch (Exception ex)
-            {
-                Console.WriteLine(ex.Message);
-            }
-            cmd = oper.getComm(sql, con);
-            try
-            {
+                cmd = oper.getComm(sql, con);
+
                 reader = oper.getResultSet(cmd);
                 while (reader.Read())
                 {
@@ -218,72 +240,93 @@ namespace parkMonitor.DB
                         lgWeight.Add(gWeight);
                     }
                 }
+                if (reader != null)
+                {
+                    reader.Dispose();
+                }
+                if (cmd != null)
+                {
+                    cmd.Dispose();
+                }
+                if (con != null)
+                {
+                    //con.Close();
+                    con.Dispose();
+                }
             }
             catch (Exception ex)
             {
                 Console.WriteLine(ex.ToString());
             }
-            con.Close();
             return lgWeight;
         }
 
         //数据插入记录表,并返回停车记录id
-        public int InsertToParkingRecords(int parkingStatus,int userID, string numberPlate, int parkingSpaceID, int garageID, int parkingRecordsState, string realParkTime)
+        public int InsertToParkingRecords(int userID, string numberPlate, int parkingSpaceID, int garageID, int parkingRecordsState, string realParkTime)
         {
-            string sql = "insert into parkingrecords(parkingStatus,userID,numberPlate,parkingSpaceID,garageID,parkingRecordsState,realParkTime) values('"+parkingStatus+"','" + userID + "','" + numberPlate + "','" + parkingSpaceID + "','" + garageID + "','" + parkingRecordsState + "','" + realParkTime + "')";
+            string sql = "insert into parkingrecords(userID,numberPlate,parkingSpaceID,garageID,parkingRecordsState,realParkTime) values('" + userID + "','" + numberPlate + "','" + parkingSpaceID + "','" + garageID + "','" + parkingRecordsState + "','" + realParkTime + "')";
             con = oper.getConn();
+            int parkingRecordsID = 0;
             try
             {
                 con.Open();
+                cmd = oper.getComm(sql, con);
+                oper.getInsert(cmd);
+                parkingRecordsID = Convert.ToInt32(cmd.LastInsertedId);
+                if (cmd != null)
+                {
+                    cmd.Dispose();
+                }
+                if (con != null)
+                {
+                    //con.Close();
+                    con.Dispose();
+                }
             }
             catch (Exception ex)
             {
                 Console.WriteLine(ex.Message);
             }
-            cmd = oper.getComm(sql, con);
-            oper.getInsert(cmd);
-
-            int parkingRecordsID = Convert.ToInt32(cmd.LastInsertedId);
-            con.Close();
             return parkingRecordsID;
         }
 
         //根据车牌号更新车辆表
-        public void UpdateVehicle(string numberPlate, int vehiclepParkState, string scanEntryTime, int parkingRecordsID, int parkingSpaceID, int vehicleTypeConfirm)
+        public void UpdateVehicle(string numberPlate, int vehiclepParkState, string scanEntryTime, int parkingRecordsID, int parkingSpaceID, int vehicleTypeConfirm, int frontWheelbase, int rearWheelbase)
         {
-            string sql = "update vehicle set vehiclepParkState = '" + vehiclepParkState + "',scanEntryTime = '" + scanEntryTime + "',parkingRecordsID = '" + parkingRecordsID + "',parkingSpaceID = '" + parkingSpaceID + "',vehicleTypeConfirm = '" + vehicleTypeConfirm + "' where numberPlate = '" + numberPlate + "'";
+            string sql = "update vehicle set vehiclepParkState = '" + vehiclepParkState + "',scanEntryTime = '" + scanEntryTime + "',parkingRecordsID = '" + parkingRecordsID + "',parkingSpaceID = '" + parkingSpaceID + "',vehicleTypeConfirm = '" + vehicleTypeConfirm + "',frontwheelbase = '" + frontWheelbase + "',rearwheelbase = '"+rearWheelbase+"' where numberPlate = '" + numberPlate + "'";
             con = oper.getConn();
             try
             {
                 con.Open();
+                cmd = oper.getComm(sql, con);
+                oper.getUpdate(cmd);
+                if (cmd != null)
+                {
+                    cmd.Dispose();
+                }
+                if (con != null)
+                {
+                    //con.Close();
+                    con.Dispose();
+                }
             }
             catch (Exception ex)
             {
                 Console.WriteLine(ex.Message);
             }
-            cmd = oper.getComm(sql, con);
-            oper.getUpdate(cmd);
-            con.Close();
         }
 
         //查询车库表获得剩余车位数
         public int getGarageFreeSpace(int garageID)
         {
             int garageFreeSpace = 0;
-            MySqlDataReader reader;
+            MySqlDataReader reader = null;
             string sql = "select * from garage where garageID = '" + garageID + "'";
             con = oper.getConn();
             try
             {
                 con.Open();
-            }
-            catch (Exception ex)
-            {
-                Console.WriteLine(ex.Message);
-            }
-            cmd = oper.getComm(sql, con);
-            try
-            {
+                cmd = oper.getComm(sql, con);
                 reader = oper.getResultSet(cmd);
                 while (reader.Read())
                 {
@@ -292,31 +335,51 @@ namespace parkMonitor.DB
                         garageFreeSpace = reader.GetInt32("garageFreeSpace");
                     }
                 }
+                if (reader != null)
+                {
+                    reader.Dispose();
+                }
+                if (cmd != null)
+                {
+                    cmd.Dispose();
+                }
+                if (con != null)
+                {
+                    //con.Close();
+                    con.Dispose();
+                }
             }
             catch (Exception ex)
             {
                 Console.WriteLine(ex.ToString());
             }
-            con.Close();
             return garageFreeSpace;
         }
 
         //更新车库表剩余车位数
-        public void UpdateGarageFreeSpace(int garageFreeSpace,int garageID)
+        public void UpdateGarageFreeSpace(int garageFreeSpace, int garageID)
         {
             string sql = "update garage set garageFreeSpace = '" + garageFreeSpace + "' where garageID = '" + garageID + "'";
             con = oper.getConn();
             try
             {
                 con.Open();
+                cmd = oper.getComm(sql, con);
+                oper.getUpdate(cmd);
+                if (cmd != null)
+                {
+                    cmd.Dispose();
+                }
+                if (con != null)
+                {
+                    //con.Close();
+                    con.Dispose();
+                }
             }
             catch (Exception ex)
             {
                 Console.WriteLine(ex.Message);
             }
-            cmd = oper.getComm(sql, con);
-            oper.getUpdate(cmd);
-            con.Close();
         }
 
         //根据车牌号更新车辆状态
@@ -327,14 +390,22 @@ namespace parkMonitor.DB
             try
             {
                 con.Open();
+                cmd = oper.getComm(sql, con);
+                oper.getUpdate(cmd);
+                if (cmd != null)
+                {
+                    cmd.Dispose();
+                }
+                if (con != null)
+                {
+                    //con.Close();
+                    con.Dispose();
+                }
             }
             catch (Exception ex)
             {
                 Console.WriteLine(ex.Message);
             }
-            cmd = oper.getComm(sql, con);
-            oper.getUpdate(cmd);
-            con.Close();
         }
 
         //更新车位状态
@@ -345,14 +416,22 @@ namespace parkMonitor.DB
             try
             {
                 con.Open();
+                cmd = oper.getComm(sql, con);
+                oper.getUpdate(cmd);
+                if (cmd != null)
+                {
+                    cmd.Dispose();
+                }
+                if (con != null)
+                {
+                    //con.Close();
+                    con.Dispose();
+                }
             }
             catch (Exception ex)
             {
                 Console.WriteLine(ex.Message);
             }
-            cmd = oper.getComm(sql, con);
-            oper.getUpdate(cmd);
-            con.Close();
         }
 
         //更新停车记录表
@@ -363,14 +442,22 @@ namespace parkMonitor.DB
             try
             {
                 con.Open();
+                cmd = oper.getComm(sql, con);
+                oper.getUpdate(cmd);
+                if (cmd != null)
+                {
+                    cmd.Dispose();
+                }
+                if (con != null)
+                {
+                    //con.Close();
+                    con.Dispose();
+                }
             }
             catch (Exception ex)
             {
                 Console.WriteLine(ex.Message);
             }
-            cmd = oper.getComm(sql, con);
-            oper.getUpdate(cmd);
-            con.Close();
         }
 
         //插入消息推送表
@@ -381,34 +468,35 @@ namespace parkMonitor.DB
             try
             {
                 con.Open();
+                cmd = oper.getComm(sql, con);
+                oper.getInsert(cmd);
+                if (cmd != null)
+                {
+                    cmd.Dispose();
+                }
+                if (con != null)
+                {
+                    //con.Close();
+                    con.Dispose();
+                }
             }
             catch (Exception ex)
             {
                 Console.WriteLine(ex.Message);
             }
-            cmd = oper.getComm(sql, con);
-            oper.getInsert(cmd);
-            con.Close();
         }
 
         //查询车库表获得车库名称
         public string getGarageName(int garageID)
         {
             string garageName = null;
-            MySqlDataReader reader;
+            MySqlDataReader reader = null;
             string sql = "select * from garage where garageID = '" + garageID + "'";
             con = oper.getConn();
             try
             {
                 con.Open();
-            }
-            catch (Exception ex)
-            {
-                Console.WriteLine(ex.Message);
-            }
-            cmd = oper.getComm(sql, con);
-            try
-            {
+                cmd = oper.getComm(sql, con);
                 reader = oper.getResultSet(cmd);
                 while (reader.Read())
                 {
@@ -417,34 +505,39 @@ namespace parkMonitor.DB
                         garageName = reader.GetString("garageName");
                     }
                 }
+                if (reader != null)
+                {
+                    reader.Dispose();
+                }
+                if (cmd != null)
+                {
+                    cmd.Dispose();
+                }
+                if (con != null)
+                {
+                    //con.Close();
+                    con.Dispose();
+                }
             }
             catch (Exception ex)
             {
                 Console.WriteLine(ex.ToString());
             }
-            con.Close();
             return garageName;
         }
 
         //根据车牌查询得到车库id和车位id以及轮距
         public Vehicle GetVehicle(string numberPlate)
         {
-           // List<Vehicle> lVehicle = new List<Vehicle>();
+            // List<Vehicle> lVehicle = new List<Vehicle>();
             Vehicle v = new Vehicle();
-            MySqlDataReader reader;
+            MySqlDataReader reader = null;
             string sql = "select * from vehicle where numberPlate = '" + numberPlate + "'";
             con = oper.getConn();
             try
             {
                 con.Open();
-            }
-            catch (Exception ex)
-            {
-                Console.WriteLine(ex.Message);
-            }
-            cmd = oper.getComm(sql, con);
-            try
-            {
+                cmd = oper.getComm(sql, con);
                 reader = oper.getResultSet(cmd);
                 while (reader.Read())
                 {
@@ -460,33 +553,38 @@ namespace parkMonitor.DB
                         v.rearwheelbase = rearwheelbase;
                     }
                 }
+                if (reader != null)
+                {
+                    reader.Dispose();
+                }
+                if (cmd != null)
+                {
+                    cmd.Dispose();
+                }
+                if (con != null)
+                {
+                    //con.Close();
+                    con.Dispose();
+                }
             }
             catch (Exception ex)
             {
                 Console.WriteLine(ex.ToString());
             }
-            con.Close();
             return v;
         }
-        
+
         //根据车位id获得x,y,z
         public Fetching_Space GetFetchingSpace(int parkingSpaceID)
         {
             Fetching_Space fs = new Fetching_Space();
-            MySqlDataReader reader;
-            string sql = "select * from parkingspace where parkingSpaceID = '" + parkingSpaceID+" '";
+            MySqlDataReader reader = null;
+            string sql = "select * from parkingspace where parkingSpaceID = '" + parkingSpaceID + " '";
             con = oper.getConn();
             try
             {
                 con.Open();
-            }
-            catch (Exception ex)
-            {
-                Console.WriteLine(ex.Message);
-            }
-            cmd = oper.getComm(sql, con);
-            try
-            {
+                cmd = oper.getComm(sql, con);
                 reader = oper.getResultSet(cmd);
                 while (reader.Read())
                 {
@@ -500,14 +598,26 @@ namespace parkMonitor.DB
                         fs.parkingSpaceZ = parkingSpaceZ;
                     }
                 }
+                if (reader != null)
+                {
+                    reader.Dispose();
+                }
+                if (cmd != null)
+                {
+                    cmd.Dispose();
+                }
+                if (con != null)
+                {
+                    //con.Close();
+                    con.Dispose();
+                }
             }
             catch (Exception ex)
             {
                 Console.WriteLine(ex.ToString());
-            }
-            con.Close();
+            }            
             return fs;
         }
-    
+
     }
 }

+ 9 - 1
parkMonitor/DB/IDBOperator.cs

@@ -32,7 +32,15 @@ namespace parkMonitor.DB
         }
         public MySqlDataReader getResultSet(MySqlCommand cmd)
         {
-            MySqlDataReader reader = cmd.ExecuteReader();
+            MySqlDataReader reader = null;
+            try
+            {
+                reader = cmd.ExecuteReader();
+            }
+            catch
+            {
+
+            }
             return reader;
         }
 

+ 185 - 76
parkMonitor/DBLocation/DBLocation.cs

@@ -28,32 +28,49 @@ namespace parkMonitor.DBLocation
                 {
                     isTelRegister = true;
                 }
+                if (cmd != null)
+                {
+                    cmd.Dispose();
+                }
+                if (con != null)
+                {
+                    //con.Close();
+                    con.Dispose();
+                }
             }
-            catch 
+            catch
             {
                 isTelRegister = false;
             }
-            con.Close();
             return isTelRegister;
         }
-        
+
         //注册信息写入数据库,返回注册成功信息
         public int InsertUser(string tel, string password)
         {
             string sql = "insert into user(userTelephone,userPassword,userLevel) values('" + tel + "','" + password + "',1)";
             con = oper.getConn();
+            int userID = 0;
             try
             {
                 con.Open();
+                cmd = oper.getComm(sql, con);
+                oper.getInsert(cmd);
+                userID = Convert.ToInt32(cmd.LastInsertedId);
+                if (cmd != null)
+                {
+                    cmd.Dispose();
+                }
+                if (con != null)
+                {
+                    //con.Close();
+                    con.Dispose();
+                }
             }
             catch (Exception ex)
             {
                 Console.WriteLine(ex.Message);
             }
-            cmd = oper.getComm(sql, con);
-            oper.getInsert(cmd);
-            int userID = Convert.ToInt32(cmd.LastInsertedId);
-            con.Close();
             return userID;
         }
 
@@ -61,20 +78,13 @@ namespace parkMonitor.DBLocation
         public int GetUserID(string tel)
         {
             int userID = 0;
-            MySqlDataReader reader;
+            MySqlDataReader reader = null;
             string sql = "select userID from user where userTelephone = '" + tel + "'";
             con = oper.getConn();
             try
             {
                 con.Open();
-            }
-            catch (Exception ex)
-            {
-                Console.WriteLine(ex.Message);
-            }
-            cmd = oper.getComm(sql, con);
-            try
-            {
+                cmd = oper.getComm(sql, con);
                 reader = oper.getResultSet(cmd);
                 while (reader.Read())
                 {
@@ -83,12 +93,24 @@ namespace parkMonitor.DBLocation
                         userID = reader.GetInt32("userID");
                     }
                 }
+                if (reader != null)
+                {
+                    reader.Dispose();
+                }
+                if (cmd != null)
+                {
+                    cmd.Dispose();
+                }
+                if (con != null)
+                {
+                    //con.Close();
+                    con.Dispose();
+                }
             }
             catch (Exception ex)
             {
                 Console.WriteLine(ex.ToString());
             }
-            con.Close();
             return userID;
         }
 
@@ -96,20 +118,13 @@ namespace parkMonitor.DBLocation
         public int getGarageFreeSpace(int garageID)
         {
             int garageFreeSpace = 0;
-            MySqlDataReader reader;
+            MySqlDataReader reader = null;
             string sql = "select * from garage where garageID = '" + garageID + "'";
             con = oper.getConn();
             try
             {
                 con.Open();
-            }
-            catch (Exception ex)
-            {
-                Console.WriteLine(ex.Message);
-            }
-            cmd = oper.getComm(sql, con);
-            try
-            {
+                cmd = oper.getComm(sql, con);
                 reader = oper.getResultSet(cmd);
                 while (reader.Read())
                 {
@@ -118,12 +133,24 @@ namespace parkMonitor.DBLocation
                         garageFreeSpace = reader.GetInt32("garageFreeSpace");
                     }
                 }
+                if (reader != null)
+                {
+                    reader.Dispose();
+                }
+                if (cmd != null)
+                {
+                    cmd.Dispose();
+                }
+                if (con != null)
+                {
+                    //con.Close();
+                    con.Dispose();
+                }
             }
             catch (Exception ex)
             {
                 Console.WriteLine(ex.ToString());
             }
-            con.Close();
             return garageFreeSpace;
         }
 
@@ -131,20 +158,13 @@ namespace parkMonitor.DBLocation
         public int GetParkingRecordsID(string numberPlate)
         {
             int parkingRecordsID = 0;
-            MySqlDataReader reader;
+            MySqlDataReader reader = null;
             string sql = "select parkingRecordsID from parkingrecords where numberPlate = '" + numberPlate + "' and parkingRecordsState = 3";
             con = oper.getConn();
             try
             {
                 con.Open();
-            }
-            catch (Exception ex)
-            {
-                Console.WriteLine(ex.Message);
-            }
-            cmd = oper.getComm(sql, con);
-            try
-            {
+                cmd = oper.getComm(sql, con);
                 reader = oper.getResultSet(cmd);
                 while (reader.Read())
                 {
@@ -153,12 +173,24 @@ namespace parkMonitor.DBLocation
                         parkingRecordsID = reader.GetInt32("parkingRecordsID");
                     }
                 }
+                if (reader != null)
+                {
+                    reader.Dispose();
+                }
+                if (cmd != null)
+                {
+                    cmd.Dispose();
+                }
+                if (con != null)
+                {
+                    //con.Close();
+                    con.Dispose();
+                }
             }
             catch (Exception ex)
             {
                 Console.WriteLine(ex.ToString());
             }
-            con.Close();
             return parkingRecordsID;
         }
 
@@ -177,33 +209,49 @@ namespace parkMonitor.DBLocation
                 {
                     isNumberPlate = true;
                 }
+                if (cmd != null)
+                {
+                    cmd.Dispose();
+                }
+                if (con != null)
+                {
+                    //con.Close();
+                    con.Dispose();
+                }
             }
-            catch 
+            catch
             {
                 isNumberPlate = false;
             }
-            con.Close();
             return isNumberPlate;
         }
 
         //数据插入记录表,并返回停车记录id
-        public int InsertToParkingRecords(int parkingStatus,int userID, string numberPlate, int parkingSpaceID, int garageID, int parkingRecordsState, string realParkTime)
+        public int InsertToParkingRecords(int parkingStatus, int userID, string numberPlate, int parkingSpaceID, int garageID, int parkingRecordsState, string realParkTime)
         {
             string sql = "insert into parkingrecords(parkingStatus,userID,numberPlate,parkingSpaceID,garageID,parkingRecordsState,realParkTime) values('" + parkingStatus + "','" + userID + "','" + numberPlate + "','" + parkingSpaceID + "','" + garageID + "','" + parkingRecordsState + "','" + realParkTime + "')";
             con = oper.getConn();
+            int parkingRecordsID = 0;
             try
             {
                 con.Open();
+                cmd = oper.getComm(sql, con);
+                oper.getInsert(cmd);
+                parkingRecordsID = Convert.ToInt32(cmd.LastInsertedId);
+                if (cmd != null)
+                {
+                    cmd.Dispose();
+                }
+                if (con != null)
+                {
+                    //con.Close();
+                    con.Dispose();
+                }
             }
             catch (Exception ex)
             {
                 Console.WriteLine(ex.Message);
             }
-            cmd = oper.getComm(sql, con);
-            oper.getInsert(cmd);
-
-            int parkingRecordsID = Convert.ToInt32(cmd.LastInsertedId);
-            con.Close();
             return parkingRecordsID;
         }
 
@@ -215,14 +263,22 @@ namespace parkMonitor.DBLocation
             try
             {
                 con.Open();
+                cmd = oper.getComm(sql, con);
+                oper.getUpdate(cmd);
+                if (cmd != null)
+                {
+                    cmd.Dispose();
+                }
+                if (con != null)
+                {
+                    //con.Close();
+                    con.Dispose();
+                }
             }
             catch (Exception ex)
             {
                 Console.WriteLine(ex.Message);
             }
-            cmd = oper.getComm(sql, con);
-            oper.getUpdate(cmd);
-            con.Close();
         }
 
         //更新车库表剩余车位数
@@ -233,14 +289,22 @@ namespace parkMonitor.DBLocation
             try
             {
                 con.Open();
+                cmd = oper.getComm(sql, con);
+                oper.getUpdate(cmd);
+                if (cmd != null)
+                {
+                    cmd.Dispose();
+                }
+                if (con != null)
+                {
+                    //con.Close();
+                    con.Dispose();
+                }
             }
             catch (Exception ex)
             {
                 Console.WriteLine(ex.Message);
             }
-            cmd = oper.getComm(sql, con);
-            oper.getUpdate(cmd);
-            con.Close();
         }
 
         //更新车位状态
@@ -251,32 +315,48 @@ namespace parkMonitor.DBLocation
             try
             {
                 con.Open();
+                cmd = oper.getComm(sql, con);
+                oper.getUpdate(cmd);
+                if (cmd != null)
+                {
+                    cmd.Dispose();
+                }
+                if (con != null)
+                {
+                    //con.Close();
+                    con.Dispose();
+                }
             }
             catch (Exception ex)
             {
                 Console.WriteLine(ex.Message);
             }
-            cmd = oper.getComm(sql, con);
-            oper.getUpdate(cmd);
-            con.Close();
         }
 
         //更新停车记录表
-        public void UpdateParkingRecords(int parkingStatus,int parkingRecordsState, string realGetTime, int parkingRecordsID)
+        public void UpdateParkingRecords(int parkingStatus, int parkingRecordsState, string realGetTime, int parkingRecordsID)
         {
             string sql = "update parkingrecords set parkingRecordsState = '" + parkingRecordsState + "',realGetTime = '" + realGetTime + "'where parkingRecordsID = '" + parkingRecordsID + "'";
             con = oper.getConn();
             try
             {
                 con.Open();
+                cmd = oper.getComm(sql, con);
+                oper.getUpdate(cmd);
+                if (cmd != null)
+                {
+                    cmd.Dispose();
+                }
+                if (con != null)
+                {
+                    //con.Close();
+                    con.Dispose();
+                }
             }
             catch (Exception ex)
             {
                 Console.WriteLine(ex.Message);
             }
-            cmd = oper.getComm(sql, con);
-            oper.getUpdate(cmd);
-            con.Close();
         }
 
         //根据车牌号更新车辆状态
@@ -287,14 +367,22 @@ namespace parkMonitor.DBLocation
             try
             {
                 con.Open();
+                cmd = oper.getComm(sql, con);
+                oper.getUpdate(cmd);
+                if (cmd != null)
+                {
+                    cmd.Dispose();
+                }
+                if (con != null)
+                {
+                    //con.Close();
+                    con.Dispose();
+                }
             }
             catch (Exception ex)
             {
                 Console.WriteLine(ex.Message);
             }
-            cmd = oper.getComm(sql, con);
-            oper.getUpdate(cmd);
-            con.Close();
         }
 
         //判断车辆表中是否存在该车辆号牌
@@ -312,12 +400,20 @@ namespace parkMonitor.DBLocation
                 {
                     isNumberPlateFromVehicle = true;
                 }
+                if (cmd != null)
+                {
+                    cmd.Dispose();
+                }
+                if (con != null)
+                {
+                    //con.Close();
+                    con.Dispose();
+                }
             }
             catch
             {
                 isNumberPlateFromVehicle = false;
             }
-            con.Close();
             return isNumberPlateFromVehicle;
         }
 
@@ -329,14 +425,22 @@ namespace parkMonitor.DBLocation
             try
             {
                 con.Open();
+                cmd = oper.getComm(sql, con);
+                oper.getUpdate(cmd);
+                if (cmd != null)
+                {
+                    cmd.Dispose();
+                }
+                if (con != null)
+                {
+                    //con.Close();
+                    con.Dispose();
+                }
             }
             catch (Exception ex)
             {
                 Console.WriteLine(ex.Message);
             }
-            cmd = oper.getComm(sql, con);
-            oper.getUpdate(cmd);
-            con.Close();
         }
 
         //查询手动停车的车位ID
@@ -344,20 +448,13 @@ namespace parkMonitor.DBLocation
         {
             int parkingSpaceID = 0;
             List<int> listID = new List<int>();
-            MySqlDataReader reader;
+            MySqlDataReader reader = null;
             string sql = "select parkingSpaceID from parkingrecords where parkingStatus = 1 and parkingRecordsState = 3";
             con = oper.getConn();
             try
             {
                 con.Open();
-            }
-            catch (Exception ex)
-            {
-                Console.WriteLine(ex.Message);
-            }
-            cmd = oper.getComm(sql, con);
-            try
-            {
+                cmd = oper.getComm(sql, con);
                 reader = oper.getResultSet(cmd);
                 while (reader.Read())
                 {
@@ -366,12 +463,24 @@ namespace parkMonitor.DBLocation
                         parkingSpaceID = reader.GetInt32("parkingSpaceID");
                     }
                 }
+                if (reader != null)
+                {
+                    reader.Dispose();
+                }
+                if (cmd != null)
+                {
+                    cmd.Dispose();
+                }
+                if (con != null)
+                {
+                    //con.Close();
+                    con.Dispose();
+                }
             }
             catch (Exception ex)
             {
                 Console.WriteLine(ex.ToString());
-            }
-            con.Close();
+            }         
             listID.Add(parkingSpaceID);
             return listID.ToArray();
         }

+ 9 - 1
parkMonitor/DBLocation/IDBLocation.cs

@@ -32,7 +32,15 @@ namespace parkMonitor.DBLocation
         }
         public MySqlDataReader getResultSet(MySqlCommand cmd)
         {
-            MySqlDataReader reader = cmd.ExecuteReader();
+            MySqlDataReader reader = null;
+            try
+            {
+                reader = cmd.ExecuteReader();
+            }
+            catch
+            {
+
+            }
             return reader;
         }
 

+ 31 - 18
parkMonitor/server/CoreThread/AbstractCmd.cs

@@ -33,6 +33,9 @@ namespace parkMonitor.server.CoreThread
         public int fetching_startRobot_address { get; set; }
         public DBLocationOperator locationOper { get; set; }
 
+        public int frontWheelbase_address { get; set; }
+        public int rearWheelbase_address { get; set; }
+
         public Robot robot { get; set; }
 
         public AbstractCmd()
@@ -44,6 +47,9 @@ namespace parkMonitor.server.CoreThread
             parkingEntX = Convert.ToInt32(ConfigurationManager.AppSettings["parkingEntX"]);
             parkingEntY = Convert.ToInt32(ConfigurationManager.AppSettings["parkingEntY"]);
             parkingEntZ = Convert.ToInt32(ConfigurationManager.AppSettings["parkingEntZ"]);
+            //轮距
+            frontWheelbase_address = Convert.ToInt32(ConfigurationManager.AppSettings["frontWheelbase_address"]);
+            rearWheelbase_address = Convert.ToInt32(ConfigurationManager.AppSettings["rearWheelbase_address"]);
             //取车完成
             fetch_completed_address = Convert.ToInt32(ConfigurationManager.AppSettings["fetch_completed_address"]);
             //获取PLC句柄
@@ -335,6 +341,9 @@ namespace parkMonitor.server.CoreThread
             Console.WriteLine("停车,抓车:" + queueCmd.LicenseNum);
             Log.WriteLog("停车,抓车:" + queueCmd.LicenseNum);
             UILogServer.ins.info("停车,抓车:" + queueCmd.LicenseNum);
+
+            int frontWheelbase = 0;
+            int rearWheelbase = 0;
             Task storeSignal = Task.Factory.StartNew(() =>
             {
                 while (true)
@@ -345,6 +354,8 @@ namespace parkMonitor.server.CoreThread
                     //停车完成信号
                     if (storeStatus == 1)
                     {
+                        frontWheelbase = Convert.ToInt32(PLCMsg.extendedPlcList[frontWheelbase_address].Value);
+                        rearWheelbase = Convert.ToInt32(PLCMsg.extendedPlcList[rearWheelbase_address].Value);
                         break;
                     }
                     else if (1 == 2)//机械手异常,则退指令,写数据库归位
@@ -394,9 +405,9 @@ namespace parkMonitor.server.CoreThread
                 {
                     //更新云端数据库
                     //插入停车记录表
-                    int parkingRecordsID = oper.InsertToParkingRecords(0,userID, numberPlate, parkingSpaceID, garageID, 3, realParkTime);
+                    int parkingRecordsID = oper.InsertToParkingRecords(userID, numberPlate, parkingSpaceID, garageID, 3, realParkTime);
                     //车辆表更新车辆信息
-                    oper.UpdateVehicle(numberPlate, 1, realParkTime, parkingRecordsID, parkingSpaceID, 1);
+                    oper.UpdateVehicle(numberPlate, 1, realParkTime, parkingRecordsID, parkingSpaceID, 1,frontWheelbase,rearWheelbase);
                     //更新车库表剩余车位数
                     int freeSpaceCount = oper.getGarageFreeSpace(garageID);
                     freeSpaceCount = freeSpaceCount - 1;
@@ -406,14 +417,14 @@ namespace parkMonitor.server.CoreThread
                     //插入消息队列表
                     oper.InsertToMessageQueue(userID, "停车成功", 1);
 
-                    //更新本地数据库
-                    int parkingRecordsIDLocation = locationOper.InsertToParkingRecords(0, userID, numberPlate, parkingSpaceID, garageID, 3, realParkTime);
-                    //车辆表更新车辆信息
-                    locationOper.UpdateVehicle(numberPlate, 1, parkingRecordsIDLocation, parkingSpaceID, 1);
-                    //更新车库表剩余车位数
-                    locationOper.UpdateGarageFreeSpace(freeSpaceCount, garageID);
-                    //更新车位表车位状态
-                    locationOper.UpdateParkingSpaceState(parkingSpaceID, 1);
+                    ////更新本地数据库
+                    //int parkingRecordsIDLocation = locationOper.InsertToParkingRecords(0, userID, numberPlate, parkingSpaceID, garageID, 3, realParkTime);
+                    ////车辆表更新车辆信息
+                    //locationOper.UpdateVehicle(numberPlate, 1, parkingRecordsIDLocation, parkingSpaceID, 1);
+                    ////更新车库表剩余车位数
+                    //locationOper.UpdateGarageFreeSpace(freeSpaceCount, garageID);
+                    ////更新车位表车位状态
+                    //locationOper.UpdateParkingSpaceState(parkingSpaceID, 1);
                 }
                 else
                 {
@@ -558,6 +569,8 @@ namespace parkMonitor.server.CoreThread
             //先手动赋值
             pm2.RobotID = 1;
             PLC.SetMessage(pm2);
+            Console.WriteLine("号牌:" + queueCmd.LicenseNum + "取车完成");
+            Log.WriteLog("号牌:" + queueCmd.LicenseNum + "取车完成");
             UILogServer.ins.info("号牌:" + queueCmd.LicenseNum + "取车完成");
             //数据库更新
             if (queueCmd.manual == false)
@@ -574,14 +587,14 @@ namespace parkMonitor.server.CoreThread
                 //更新停车记录表
                 oper.UpdateParkingRecords(6, queueCmd.TimeRecord, queueCmd.parkingRecordsID);
 
-                //本地数据库更新
-                locationOper.UpdateGarageFreeSpace(freeSpaceCount, garageID);
-                //更新车位表车位状态
-                locationOper.UpdateParkingSpaceState(parkingSpaceID, 0);
-                //更新车辆表车辆停车状态
-                locationOper.UpdateVehicleParkState(queueCmd.LicenseNum, 0);
-                //更新停车记录表
-                locationOper.UpdateParkingRecords(0, 6, queueCmd.TimeRecord, queueCmd.parkingRecordsID);
+                ////本地数据库更新
+                //locationOper.UpdateGarageFreeSpace(freeSpaceCount, garageID);
+                ////更新车位表车位状态
+                //locationOper.UpdateParkingSpaceState(parkingSpaceID, 0);
+                ////更新车辆表车辆停车状态
+                //locationOper.UpdateVehicleParkState(queueCmd.LicenseNum, 0);
+                ////更新停车记录表
+                //locationOper.UpdateParkingRecords(0, 6, queueCmd.TimeRecord, queueCmd.parkingRecordsID);
             }
             else
             {

+ 21 - 21
parkMonitor/server/CoreThread/CoreThreadTest2.cs

@@ -107,27 +107,27 @@ namespace parkMonitor.server.CoreThread
                     AbstractCmd abstractCmd = simpleCMDFactory.createCmd(queueCmd);
                     abstractCmd.executeCmd(queueCmd);
                 });
-                //同步数据库
-                Task.Factory.StartNew(() =>
-                {
-                    try
-                    {
-                        //更新车库表车位数
-                        int freeSpaceCount = locationOper.getGarageFreeSpace(queueCmd.garageID);
-                        oper.UpdateGarageFreeSpace(freeSpaceCount, queueCmd.garageID);
-                        //更新车位状态
-                        int[] spaceID = locationOper.GetParkingSpaceID();
-                        for (int i = 0; i < spaceID.Length; i++)
-                        {
-
-                        }
-                    }
-                    catch
-                    {
-
-                    }
-                    Thread.Sleep(1800000);
-                });
+                ////同步数据库
+                //Task.Factory.StartNew(() =>
+                //{
+                //    try
+                //    {
+                //        //更新车库表车位数
+                //        int freeSpaceCount = locationOper.getGarageFreeSpace(queueCmd.garageID);
+                //        oper.UpdateGarageFreeSpace(freeSpaceCount, queueCmd.garageID);
+                //        //更新车位状态
+                //        int[] spaceID = locationOper.GetParkingSpaceID();
+                //        for (int i = 0; i < spaceID.Length; i++)
+                //        {
+
+                //        }
+                //    }
+                //    catch(Exception)
+                //    {
+                //        Console.WriteLine("无同步数据");
+                //    }
+                //    Thread.Sleep(1800000);
+                //});
                 Thread.Sleep(100);
             }
         }