ソースを参照

修改当失去链接调用CheckExist方法时没有自动重连

章政 8 年 前
コミット
1136e12a06
1 ファイル変更16 行追加5 行削除
  1. 16 5
      UAS-MES/DataOperate/DataHelper.cs

+ 16 - 5
UAS-MES/DataOperate/DataHelper.cs

@@ -255,7 +255,7 @@ namespace UAS_MES.DataOperate
             string sql = "select ";
             sql += AddField(Fields);
             sql += " from " + TableName + " where " + Condition;
-
+            
             command = new OracleCommand(sql, connection);
             Reconnect(command);
             OracleDataAdapter ad = new OracleDataAdapter(command);
@@ -479,11 +479,22 @@ namespace UAS_MES.DataOperate
         {
             string sql = "select count(1) from " + TableName + " where " + Condition;
             command = new OracleCommand(sql, connection);
-
             Reconnect(command);
             OracleDataAdapter ad = new OracleDataAdapter(command);
             DataTable dt = new DataTable();
-            ad.Fill(dt);
+            try
+            {
+                ad.Fill(dt);
+            }
+            catch (Exception)
+            {
+                connection = new OracleConnection(DBConnectionString);
+                connection.Open();
+                command = new OracleCommand(sql, connection);
+                ad = new OracleDataAdapter();
+                ad.SelectCommand = command;
+                ad.Fill(dt);
+            }
             ad.Dispose();
             command.Dispose();
             return int.Parse(dt.Rows[0][0].ToString()) > 0;
@@ -526,7 +537,7 @@ namespace UAS_MES.DataOperate
                 for (int i = 0; i < addpar.Length; i++)
                     command.Parameters.Add(new OracleParameter(addpar[i].ToString(), OracleDbType.Varchar2, names[i], ParameterDirection.Input));
             }
-
+            
             switch (Type.ToUpper())
             {
                 case "SELECT":
@@ -911,7 +922,7 @@ namespace UAS_MES.DataOperate
         {
             string sql = "update " + TableName + " set " + update + " where " + condition;
             command = new OracleCommand(sql, connection);
-
+            
             Reconnect(command);
             try
             {