Jelajahi Sumber

数据库操作类连接时间设置,岗位资源为空不允许登陆,测试采集重复添加BUG修复

章政 8 tahun lalu
induk
melakukan
4bcb28ecca

+ 23 - 4
UAS-MES/DataOperate/DataHelper.cs

@@ -17,7 +17,7 @@ namespace UAS_MES.DataOperate
         public static string DBConnectionString;
         public static string DBConnectionString;
         public static OracleConnection connection = null;
         public static OracleConnection connection = null;
         OracleCommand command = null;
         OracleCommand command = null;
-
+        int ReconnectTime = 0;
         /// <summary>
         /// <summary>
         /// 执行构造函数的时候打开数据库的链接
         /// 执行构造函数的时候打开数据库的链接
         /// </summary>
         /// </summary>
@@ -58,6 +58,7 @@ namespace UAS_MES.DataOperate
             string sql = "select " + Field + " from " + TableName + " where " + Condition;
             string sql = "select " + Field + " from " + TableName + " where " + Condition;
             Console.WriteLine(sql);
             Console.WriteLine(sql);
             command = new OracleCommand(sql, connection);
             command = new OracleCommand(sql, connection);
+            command.CommandTimeout = 60000;
             OracleDataAdapter ad = new OracleDataAdapter();
             OracleDataAdapter ad = new OracleDataAdapter();
             ad.SelectCommand = command;
             ad.SelectCommand = command;
             ad.Fill(dt);
             ad.Fill(dt);
@@ -155,6 +156,7 @@ namespace UAS_MES.DataOperate
             sql += " from " + TableName + " where " + Condition + " and rownum=1";
             sql += " from " + TableName + " where " + Condition + " and rownum=1";
             Console.WriteLine(sql);
             Console.WriteLine(sql);
             command = new OracleCommand(sql, connection);
             command = new OracleCommand(sql, connection);
+            command.CommandTimeout = 60000;
             OracleDataAdapter ad = new OracleDataAdapter(command);
             OracleDataAdapter ad = new OracleDataAdapter(command);
             ad.Fill(dt);
             ad.Fill(dt);
             ad.Dispose();
             ad.Dispose();
@@ -232,6 +234,7 @@ namespace UAS_MES.DataOperate
             sql += " from " + TableName + " where " + Condition;
             sql += " from " + TableName + " where " + Condition;
             Console.WriteLine(sql);
             Console.WriteLine(sql);
             command = new OracleCommand(sql, connection);
             command = new OracleCommand(sql, connection);
+            command.CommandTimeout = 60000;
             OracleDataAdapter ad = new OracleDataAdapter(command);
             OracleDataAdapter ad = new OracleDataAdapter(command);
             ad.Fill(dt);
             ad.Fill(dt);
             ad.Dispose();
             ad.Dispose();
@@ -575,6 +578,7 @@ namespace UAS_MES.DataOperate
         {
         {
             object result = null;
             object result = null;
             command = new OracleCommand(SQL, connection);
             command = new OracleCommand(SQL, connection);
+            command.CommandTimeout = 600000;
             //用来拼接参数的
             //用来拼接参数的
             if (names.Length > 0)
             if (names.Length > 0)
             {
             {
@@ -606,9 +610,24 @@ namespace UAS_MES.DataOperate
             {
             {
                 case "SELECT":
                 case "SELECT":
                     result = new DataTable();
                     result = new DataTable();
-                    OracleDataAdapter ad = new OracleDataAdapter(command);
-                    ad.Fill((DataTable)result);
-                    ad.Dispose();
+                    try
+                    {
+                        OracleDataAdapter ad = new OracleDataAdapter(command);
+                        ad.Fill((DataTable)result);
+                        ad.Dispose();
+                        //成功执行后将重复连接数置为0
+                        ReconnectTime = 0;
+                    }
+                    catch (Exception)
+                    {
+                        if (ReconnectTime == 0)
+                        {
+                            //重置的数据库链接后只执行一次
+                            ReconnectTime = ReconnectTime + 1;
+                            connection = new OracleConnection(DBConnectionString);
+                            result = ExecuteSql(SQL, Type, names);
+                        }
+                    }
                     break;
                     break;
                 case "DELETE":
                 case "DELETE":
                     result = command.ExecuteNonQuery();
                     result = command.ExecuteNonQuery();

+ 1 - 1
UAS-MES/FunctionCode/Make/Make_TestCollection.cs

@@ -429,7 +429,7 @@ namespace UAS_MES.Make
                 {
                 {
                     for (int i = 0; i < ChoosedRejectList.Items.Count; i++)
                     for (int i = 0; i < ChoosedRejectList.Items.Count; i++)
                     {
                     {
-                        if (ChoosedRejectList.Items[i].ListView.Items[0].SubItems[2].Text == bc_code.Text)
+                        if (ChoosedRejectList.Items[i].ListView.Items[i].SubItems[2].Text == bc_code.Text)
                         {
                         {
                             OperateResult.AppendText(">>已添加过不良代码\n", Color.Red);
                             OperateResult.AppendText(">>已添加过不良代码\n", Color.Red);
                             return;
                             return;

+ 1 - 1
UAS_WinForm.sln

@@ -1,7 +1,7 @@
 
 
 Microsoft Visual Studio Solution File, Format Version 12.00
 Microsoft Visual Studio Solution File, Format Version 12.00
 # Visual Studio 14
 # Visual Studio 14
-VisualStudioVersion = 14.0.25420.1
+VisualStudioVersion = 14.0.24720.0
 MinimumVisualStudioVersion = 10.0.40219.1
 MinimumVisualStudioVersion = 10.0.40219.1
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UAS-MES接口", "MES接口\UAS-MES接口.csproj", "{A52EFE9C-838E-4E8C-BAAA-B1C226E57A81}"
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UAS-MES接口", "MES接口\UAS-MES接口.csproj", "{A52EFE9C-838E-4E8C-BAAA-B1C226E57A81}"
 EndProject
 EndProject