|
|
@@ -57,12 +57,23 @@ namespace UAS_MES.DataOperate
|
|
|
{
|
|
|
DataTable dt = new DataTable();
|
|
|
string sql = "select " + Field + " from " + TableName + " where " + Condition;
|
|
|
-
|
|
|
command = new OracleCommand(sql, connection);
|
|
|
Reconnect(command);
|
|
|
OracleDataAdapter ad = new OracleDataAdapter();
|
|
|
ad.SelectCommand = command;
|
|
|
- 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();
|
|
|
if (dt.Rows.Count > 0)
|
|
|
@@ -75,7 +86,6 @@ namespace UAS_MES.DataOperate
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/// <summary>
|
|
|
/// 执行打印的SQL
|
|
|
/// </summary>
|
|
|
@@ -101,7 +111,6 @@ namespace UAS_MES.DataOperate
|
|
|
{
|
|
|
command.Parameters.Add("Param" + i, OracleDbType.Varchar2, Parameters[i], ParameterDirection.Input);
|
|
|
}
|
|
|
-
|
|
|
OracleDataAdapter ad = new OracleDataAdapter(command);
|
|
|
DataTable dt = new DataTable();
|
|
|
ad.Fill(dt);
|
|
|
@@ -120,7 +129,6 @@ namespace UAS_MES.DataOperate
|
|
|
{
|
|
|
DataTable dt = new DataTable();
|
|
|
string sql = "select count(1) from " + TableName + " where " + Condition;
|
|
|
-
|
|
|
command = new OracleCommand(sql, connection);
|
|
|
Reconnect(command);
|
|
|
OracleDataAdapter ad = new OracleDataAdapter(command);
|
|
|
@@ -158,11 +166,22 @@ namespace UAS_MES.DataOperate
|
|
|
string sql = "select ";
|
|
|
sql += AddField(Fields);
|
|
|
sql += " from " + TableName + " where " + Condition + " and rownum=1";
|
|
|
-
|
|
|
command = new OracleCommand(sql, connection);
|
|
|
Reconnect(command);
|
|
|
OracleDataAdapter ad = new OracleDataAdapter(command);
|
|
|
- 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 dt;
|
|
|
@@ -240,7 +259,19 @@ namespace UAS_MES.DataOperate
|
|
|
command = new OracleCommand(sql, connection);
|
|
|
Reconnect(command);
|
|
|
OracleDataAdapter ad = new OracleDataAdapter(command);
|
|
|
- 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 dt;
|
|
|
@@ -259,10 +290,18 @@ namespace UAS_MES.DataOperate
|
|
|
Reconnect(command);
|
|
|
OracleDataAdapter ad = new OracleDataAdapter(command);
|
|
|
ad.SelectCommand = command;
|
|
|
- ad.Fill(dt);
|
|
|
- foreach (DataColumn dc in dt.Columns)
|
|
|
+ try
|
|
|
{
|
|
|
- dc.Caption = "测试测试";
|
|
|
+ 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();
|
|
|
@@ -430,128 +469,6 @@ namespace UAS_MES.DataOperate
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// 获取配置列表中的数据,支持DaatList,Form,DetailGrid
|
|
|
- /// </summary>
|
|
|
- /// <param name="Caller"></param>
|
|
|
- /// <param name="Type"></param>
|
|
|
- /// <param name="condition"></param>
|
|
|
- /// <returns></returns>
|
|
|
- public DataTable GetConfigureData(string Caller, string Type, string condition)
|
|
|
- {
|
|
|
- DataTable dt = new DataTable();
|
|
|
- //用于拼接SQL语句
|
|
|
- StringBuilder Sql = new StringBuilder();
|
|
|
- //用于设置不同Type时设置对应表的字段
|
|
|
- string getField = "";
|
|
|
- string getCaption = "";
|
|
|
- string getTable = "";
|
|
|
- switch (Type.ToUpper())
|
|
|
- {
|
|
|
- case "DATALIST":
|
|
|
- getField = "dld_field"; getCaption = "dld_caption"; getTable = "dld_table";
|
|
|
- Sql.Append("select * from datalistdetail where dld_caller='" + Caller + "'");
|
|
|
- break;
|
|
|
- case "FORM":
|
|
|
- getField = "fd_field"; getCaption = "fd_caption"; getTable = "fd_table";
|
|
|
- Sql.Append("select * from formdetail where fd_foid=( select fo_id from form where fo_caller='" + Caller + "')");
|
|
|
- break;
|
|
|
- case "DETAILGRID":
|
|
|
- getField = "dg_field"; getCaption = "dg_caption"; getTable = "dg_table";
|
|
|
- Sql.Append("select * from detailgrid where dg_caller='" + Caller + "'");
|
|
|
- break;
|
|
|
- }
|
|
|
- command = new OracleCommand(Sql.ToString(), connection);
|
|
|
- OracleDataAdapter ad = new OracleDataAdapter(command);
|
|
|
- ad.Fill(dt);
|
|
|
- //清除掉之前的内容重新拼接
|
|
|
- Sql.Clear();
|
|
|
- Sql.Append("select ");
|
|
|
- string[] field = new string[dt.Rows.Count];
|
|
|
- string[] caption = new string[dt.Rows.Count];
|
|
|
- DataTable dt1 = new DataTable();
|
|
|
- //记录描述和字段名称
|
|
|
- foreach (DataRow dr in dt.Rows)
|
|
|
- {
|
|
|
- field[dt.Rows.IndexOf(dr)] = dr[getCaption].ToString();
|
|
|
- caption[dt.Rows.IndexOf(dr)] = dr[getField].ToString();
|
|
|
- Sql.Append(dr[getField] + ",");
|
|
|
- }
|
|
|
- //调用substring是为了去除之前拼接多出来的一个逗号
|
|
|
- string sql = Sql.Remove(Sql.Length - 1, 1).ToString() + " from " + dt.Rows[0][getTable] + " where " + condition;
|
|
|
- //调用一个新的构造DataTable用来存放返回的数据
|
|
|
- dt1 = (DataTable)ExecuteSql(sql, "select");
|
|
|
- //给DataTable加上列名和描述,列名是中文字段,描述是数据库实际的字段名称
|
|
|
- for (int i = 0; i < field.Length; i++)
|
|
|
- {
|
|
|
- dt1.Columns[i].ColumnName = field[i];
|
|
|
- dt1.Columns[i].Caption = caption[i];
|
|
|
- }
|
|
|
- //返回的第一条数据是SQL,后面的是实际的列名
|
|
|
- ad.Dispose();
|
|
|
- command.Dispose();
|
|
|
- return dt1;
|
|
|
- }
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- /// 查询配置的字段,Type是查询DataList,Form还是DetailGrid
|
|
|
- /// </summary>
|
|
|
- /// <param name="Caller"></param>
|
|
|
- /// <param name="Type"></param>
|
|
|
- /// <returns></returns>
|
|
|
- public DataTable GetConfigureData(string Caller, string Type)
|
|
|
- {
|
|
|
- DataTable dt = new DataTable();
|
|
|
- //用于拼接SQL语句
|
|
|
- StringBuilder Sql = new StringBuilder();
|
|
|
- //用于设置不同Type时设置对应表的字段
|
|
|
- string getField = "";
|
|
|
- string getCaption = "";
|
|
|
- string getTable = "";
|
|
|
- switch (Type.ToUpper())
|
|
|
- {
|
|
|
- case "DATALIST":
|
|
|
- getField = "dld_field"; getCaption = "dld_caption"; getTable = "dld_table";
|
|
|
- Sql.Append("select * from datalistdetail where dld_caller='" + Caller + "'");
|
|
|
- break;
|
|
|
- case "FORM":
|
|
|
- getField = "fd_field"; getCaption = "fd_caption"; getTable = "fd_table";
|
|
|
- Sql.Append("select * from formdetail where fd_foid=( select fo_id from form where fo_caller='" + Caller + "')");
|
|
|
- break;
|
|
|
- case "DETAILGRID":
|
|
|
- getField = "dg_field"; getCaption = "dg_caption"; getTable = "dg_table";
|
|
|
- Sql.Append("select * from detailgrid where dg_caller='" + Caller + "'");
|
|
|
- break;
|
|
|
- }
|
|
|
- command = new OracleCommand(Sql.ToString(), connection);
|
|
|
- OracleDataAdapter ad = new OracleDataAdapter(command);
|
|
|
- ad.Fill(dt);
|
|
|
- //清除掉之前的内容重新拼接
|
|
|
- Sql.Clear();
|
|
|
- Sql.Append("select ");
|
|
|
- //用于记录实际的列名,+1的目的是为了存放SQL
|
|
|
- string[] field = new string[dt.Rows.Count];
|
|
|
- string[] caption = new string[dt.Rows.Count];
|
|
|
- DataTable dt1 = new DataTable();
|
|
|
- foreach (DataRow dr in dt.Rows)
|
|
|
- {
|
|
|
- field[dt.Rows.IndexOf(dr)] = dr[getCaption].ToString();
|
|
|
- caption[dt.Rows.IndexOf(dr)] = dr[getField].ToString();
|
|
|
- Sql.Append(dr[getField] + ",");
|
|
|
- }
|
|
|
- string sql = Sql.Remove(Sql.Length - 1, 1).ToString() + " from " + dt.Rows[0][getTable];
|
|
|
- dt1 = (DataTable)ExecuteSql(sql, "select");
|
|
|
- //设置DataTable的列名和描述
|
|
|
- for (int i = 0; i < field.Length; i++)
|
|
|
- {
|
|
|
- dt1.Columns[i].ColumnName = field[i];
|
|
|
- dt1.Columns[i].Caption = caption[i];
|
|
|
- }
|
|
|
- ad.Dispose();
|
|
|
- command.Dispose();
|
|
|
- return dt1;
|
|
|
- }
|
|
|
-
|
|
|
/// <summary>
|
|
|
/// 检测内容是否存在
|
|
|
/// </summary>
|
|
|
@@ -565,7 +482,6 @@ namespace UAS_MES.DataOperate
|
|
|
Reconnect(command);
|
|
|
OracleDataAdapter ad = new OracleDataAdapter(command);
|
|
|
DataTable dt = new DataTable();
|
|
|
-
|
|
|
ad.Fill(dt);
|
|
|
ad.Dispose();
|
|
|
command.Dispose();
|
|
|
@@ -609,38 +525,60 @@ 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":
|
|
|
+ OracleDataAdapter ad = new OracleDataAdapter(command);
|
|
|
result = new DataTable();
|
|
|
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);
|
|
|
- }
|
|
|
+ connection = new OracleConnection(DBConnectionString);
|
|
|
+ connection.Open();
|
|
|
+ command = new OracleCommand(SQL, connection);
|
|
|
+ ad = new OracleDataAdapter();
|
|
|
+ ad.SelectCommand = command;
|
|
|
+ ad.Fill((DataTable)result);
|
|
|
}
|
|
|
break;
|
|
|
case "DELETE":
|
|
|
- result = command.ExecuteNonQuery();
|
|
|
+ try
|
|
|
+ {
|
|
|
+ result=command.ExecuteNonQuery();
|
|
|
+ }
|
|
|
+ catch (Exception)
|
|
|
+ {
|
|
|
+ command.Connection = new OracleConnection(DBConnectionString);
|
|
|
+ command.Connection.Open();
|
|
|
+ result=command.ExecuteNonQuery();
|
|
|
+ }
|
|
|
break;
|
|
|
case "UPDATE":
|
|
|
- result = command.ExecuteNonQuery();
|
|
|
+ try
|
|
|
+ {
|
|
|
+ result = command.ExecuteNonQuery();
|
|
|
+ }
|
|
|
+ catch (Exception)
|
|
|
+ {
|
|
|
+ command.Connection = new OracleConnection(DBConnectionString);
|
|
|
+ command.Connection.Open();
|
|
|
+ result = command.ExecuteNonQuery();
|
|
|
+ }
|
|
|
break;
|
|
|
case "INSERT":
|
|
|
- result = command.ExecuteNonQuery();
|
|
|
+ try
|
|
|
+ {
|
|
|
+ result = command.ExecuteNonQuery();
|
|
|
+ }
|
|
|
+ catch (Exception)
|
|
|
+ {
|
|
|
+ command.Connection = new OracleConnection(DBConnectionString);
|
|
|
+ command.Connection.Open();
|
|
|
+ result = command.ExecuteNonQuery();
|
|
|
+ }
|
|
|
break;
|
|
|
}
|
|
|
command.Dispose();
|
|
|
@@ -663,11 +601,22 @@ namespace UAS_MES.DataOperate
|
|
|
{
|
|
|
DataTable dt = new DataTable();
|
|
|
string sql = "select distinct count('" + Field + "') from " + TableName;
|
|
|
-
|
|
|
command = new OracleCommand(sql, connection);
|
|
|
Reconnect(command);
|
|
|
OracleDataAdapter ad = new OracleDataAdapter(command);
|
|
|
- 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());
|
|
|
@@ -699,7 +648,16 @@ namespace UAS_MES.DataOperate
|
|
|
Reconnect(command);
|
|
|
command.ArrayBindCount = DeleteID.Length;
|
|
|
command.Parameters.Add(new OracleParameter("DeleteID", OracleDbType.Long, DeleteID, ParameterDirection.Input));
|
|
|
- command.ExecuteNonQuery();
|
|
|
+ try
|
|
|
+ {
|
|
|
+ command.ExecuteNonQuery();
|
|
|
+ }
|
|
|
+ catch (Exception)
|
|
|
+ {
|
|
|
+ command.Connection = new OracleConnection(DBConnectionString);
|
|
|
+ command.Connection.Open();
|
|
|
+ command.ExecuteNonQuery();
|
|
|
+ }
|
|
|
command.Dispose();
|
|
|
}
|
|
|
|
|
|
@@ -848,7 +806,16 @@ namespace UAS_MES.DataOperate
|
|
|
{
|
|
|
command.Parameters.Add(new OracleParameter(names[0][i - 1].ToString(), OracleDbType.Varchar2, names[i], ParameterDirection.Input));
|
|
|
}
|
|
|
- command.ExecuteNonQuery();
|
|
|
+ try
|
|
|
+ {
|
|
|
+ command.ExecuteNonQuery();
|
|
|
+ }
|
|
|
+ catch (Exception)
|
|
|
+ {
|
|
|
+ command.Connection = new OracleConnection(DBConnectionString);
|
|
|
+ command.Connection.Open();
|
|
|
+ command.ExecuteNonQuery();
|
|
|
+ }
|
|
|
command.Dispose();
|
|
|
}
|
|
|
|
|
|
@@ -863,28 +830,17 @@ namespace UAS_MES.DataOperate
|
|
|
{
|
|
|
command.Parameters.Add(new OracleParameter(param[i].ToString(), OracleDbType.Varchar2, param1[i], ParameterDirection.Input));
|
|
|
}
|
|
|
- command.ExecuteNonQuery();
|
|
|
- command.Dispose();
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- /// 查询DataList配置的字段
|
|
|
- /// </summary>
|
|
|
- /// <param name="TableName"></param>
|
|
|
- /// <param name="Caller"></param>
|
|
|
- /// <returns></returns>
|
|
|
- public string GetDataList(string TableName, string Caller)
|
|
|
- {
|
|
|
- DataTable dt = new DataTable();
|
|
|
- string SQL = " select listagg(dld_field,',') within group (order by dld_id) from datalistdetail where dld_caller='" + Caller + "'";
|
|
|
- command = new OracleCommand(SQL, connection);
|
|
|
- Reconnect(command);
|
|
|
- OracleDataAdapter ad = new OracleDataAdapter(command);
|
|
|
- ad.Fill(dt);
|
|
|
- ad.Dispose();
|
|
|
+ try
|
|
|
+ {
|
|
|
+ command.ExecuteNonQuery();
|
|
|
+ }
|
|
|
+ catch (Exception)
|
|
|
+ {
|
|
|
+ command.Connection = new OracleConnection(DBConnectionString);
|
|
|
+ command.Connection.Open();
|
|
|
+ command.ExecuteNonQuery();
|
|
|
+ }
|
|
|
command.Dispose();
|
|
|
- return dt.Rows[0][0].ToString();
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
@@ -952,10 +908,18 @@ namespace UAS_MES.DataOperate
|
|
|
public string UpdateByCondition(string TableName, string update, string condition)
|
|
|
{
|
|
|
string sql = "update " + TableName + " set " + update + " where " + condition;
|
|
|
-
|
|
|
command = new OracleCommand(sql, connection);
|
|
|
Reconnect(command);
|
|
|
- command.ExecuteNonQuery();
|
|
|
+ try
|
|
|
+ {
|
|
|
+ command.ExecuteNonQuery();
|
|
|
+ }
|
|
|
+ catch (Exception)
|
|
|
+ {
|
|
|
+ command.Connection = new OracleConnection(DBConnectionString);
|
|
|
+ command.Connection.Open();
|
|
|
+ command.ExecuteNonQuery();
|
|
|
+ }
|
|
|
command.Dispose();
|
|
|
return sql;
|
|
|
}
|
|
|
@@ -974,7 +938,16 @@ namespace UAS_MES.DataOperate
|
|
|
command.CommandType = CommandType.StoredProcedure;
|
|
|
for (int i = 0; i < param.Length; i++)
|
|
|
command.Parameters.Add(new OracleParameter(param[i].ToString(), OracleDbType.Varchar2, 200, param[i], ParameterDirection.InputOutput));
|
|
|
- command.ExecuteNonQuery();
|
|
|
+ try
|
|
|
+ {
|
|
|
+ command.ExecuteNonQuery();
|
|
|
+ }
|
|
|
+ catch (Exception)
|
|
|
+ {
|
|
|
+ command.Connection = new OracleConnection(DBConnectionString);
|
|
|
+ command.Connection.Open();
|
|
|
+ command.ExecuteNonQuery();
|
|
|
+ }
|
|
|
for (int i = 0; i < command.Parameters.Count; i++)
|
|
|
param[i] = command.Parameters[i].Value.ToString();
|
|
|
command.Dispose();
|
|
|
@@ -1062,7 +1035,19 @@ namespace UAS_MES.DataOperate
|
|
|
Reconnect(command);
|
|
|
OracleDataAdapter ad = new OracleDataAdapter();
|
|
|
ad.SelectCommand = command;
|
|
|
- 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);
|
|
|
+ }
|
|
|
if (dt.Rows.Count > 0)
|
|
|
{
|
|
|
ad.Dispose();
|