Browse Source

删除不需要的方法,对当前使用的方法添加重置连接

章政 5 years ago
parent
commit
ca29298696
1 changed files with 59 additions and 329 deletions
  1. 59 329
      UAS-出货标签管理(吉利通)/PublicMethod/DataHelper.cs

+ 59 - 329
UAS-出货标签管理(吉利通)/PublicMethod/DataHelper.cs

@@ -59,36 +59,6 @@ namespace UAS_LabelMachine
             connection.Dispose();
         }
 
-        /// <summary>
-        /// 根据表名获取该表字段数据类型
-        /// </summary>
-        public DataTable GetColumnDataType(string TableName)
-        {
-            DataTable dt = new DataTable();
-            command = new OracleCommand("select Column_Name,Data_Type from cols where TABLE_name=upper('" + TableName + "')", connection);
-            OracleDataAdapter ad = new OracleDataAdapter(command);
-            ad.Fill(dt);
-            ad.Dispose();
-            command.Dispose();
-            return dt;
-        }
-
-        public object GetLabelParam(string sql)
-        {
-            DataTable dt = new DataTable();
-            command = new OracleCommand(sql, connection);
-            OracleDataAdapter ad = new OracleDataAdapter();
-            ad.SelectCommand = command;
-            ad.Fill(dt);
-            if (dt.Rows.Count > 0)
-            {
-                ad.Dispose();
-                command.Dispose();
-                return dt.Rows[0][0];
-            }
-            else { command.Dispose(); return ""; }
-        }
-
         /// <summary>
         /// 获取第一行第一列的信息
         /// </summary>
@@ -97,74 +67,32 @@ namespace UAS_LabelMachine
             DataTable dt = new DataTable();
             string sql = "select " + Field + " from " + TableName + " where " + Condition;
             command = new OracleCommand(sql, connection);
-            OracleDataAdapter ad = new OracleDataAdapter();
-            ad.SelectCommand = command;
             try
             {
+                OracleDataAdapter ad = new OracleDataAdapter();
+                ad.SelectCommand = command;
                 ad.Fill(dt);
-                ReconnectTime = 0;
             }
             catch (Exception)
             {
-                if (ReconnectTime == 0)
-                {
-                    ReconnectTime++;
-                    connection = new OracleConnection(DBConnectionString);
-                    //成功执行后将重复连接数置为0
-                    dt = (DataTable)getFieldDataByCondition(TableName, Field, Condition);
-                }
+                connection = new OracleConnection(DBConnectionString);
+                connection.Open();
+                command.Connection = connection;
+                OracleDataAdapter ad = new OracleDataAdapter(command);
+                ad.Fill(dt);
             }
-
             if (dt.Rows.Count > 0)
             {
-                ad.Dispose();
                 command.Dispose();
                 return dt.Rows[0][0];
             }
             else
             {
-                ad.Dispose();
                 command.Dispose();
                 return "";
             }
         }
 
-        /// <summary>
-        /// 执行打印的SQL
-        /// </summary>
-        /// <param name="SQL">SQL语句</param>
-        /// <param name="Parameters">动态添加的参数,主要根据条码枪扫描获取</param>
-        /// <returns></returns>
-        public object ExecutePrintSQL(string SQL, params string[] Parameters)
-        {
-            //按照?拆分数据,然后以:Param替换问号,同时添加参数
-            string[] Param = SQL.Split('?');
-            int ParamNum = Param.Length - 1;
-            //条码打印必然存在需要维护的参数
-            if (ParamNum > 0)
-            {
-                StringBuilder sb = new StringBuilder();
-                for (int i = 0; i < ParamNum; i++)
-                {
-                    sb.Append(Param[i] + ":Param" + i);
-                }
-                command = new OracleCommand(sb.ToString(), connection);
-
-                for (int i = 0; i < ParamNum; i++)
-                {
-                    command.Parameters.Add("Param" + i, OracleDbType.Varchar2, Parameters[i], ParameterDirection.Input);
-                }
-
-                OracleDataAdapter ad = new OracleDataAdapter(command);
-                DataTable dt = new DataTable();
-                ad.Fill(dt);
-                ad.Dispose();
-                command.Dispose();
-                return dt;
-            }
-            return "参数错误,请检查SQL语句";
-        }
-
         /// <summary>
         /// 获取指定表的记录的条数 ,带条件
         /// </summary>
@@ -174,8 +102,19 @@ namespace UAS_LabelMachine
             DataTable dt = new DataTable();
             string sql = "select count(1) from " + TableName + " where " + Condition;
             command = new OracleCommand(sql, connection);
-            OracleDataAdapter ad = new OracleDataAdapter(command);
-            ad.Fill(dt);
+            try
+            {
+                OracleDataAdapter ad = new OracleDataAdapter(command);
+                ad.Fill(dt);
+            }
+            catch (Exception)
+            {
+                connection = new OracleConnection(DBConnectionString);
+                connection.Open();
+                command.Connection = connection;
+                OracleDataAdapter ad = new OracleDataAdapter(command);
+                ad.Fill(dt);
+            }
             int count = int.Parse(dt.Rows[0][0].ToString());
             command.Dispose();
             return count;
@@ -191,8 +130,19 @@ namespace UAS_LabelMachine
             DataTable dt = new DataTable();
             string sql = "select count(1) from " + TableName;
             command = new OracleCommand(sql, connection);
-            OracleDataAdapter ad = new OracleDataAdapter(command);
-            ad.Fill(dt);
+            try
+            {
+                OracleDataAdapter ad = new OracleDataAdapter(command);
+                ad.Fill(dt);
+            }
+            catch (Exception)
+            {
+                connection = new OracleConnection(DBConnectionString);
+                connection.Open();
+                command.Connection = connection;
+                OracleDataAdapter ad = new OracleDataAdapter(command);
+                ad.Fill(dt);
+            }
             int count = int.Parse(dt.Rows[0][0].ToString());
             command.Dispose();
             return count;
@@ -208,8 +158,19 @@ namespace UAS_LabelMachine
             sql += AddField(Fields);
             sql += " from " + TableName + " where " + Condition + " and rownum=1";
             command = new OracleCommand(sql, connection);
-            OracleDataAdapter ad = new OracleDataAdapter(command);
-            ad.Fill(dt);
+            try
+            {
+                OracleDataAdapter ad = new OracleDataAdapter(command);
+                ad.Fill(dt);
+            }
+            catch (Exception)
+            {
+                connection = new OracleConnection(DBConnectionString);
+                connection.Open();
+                command.Connection = connection;
+                OracleDataAdapter ad = new OracleDataAdapter(command);
+                ad.Fill(dt);
+            }
             command.Dispose();
             return dt;
         }
@@ -221,26 +182,21 @@ namespace UAS_LabelMachine
         {
             DataTable dt = new DataTable();
             command = new OracleCommand(sql, connection);
-            OracleDataAdapter ad = new OracleDataAdapter(command);
-            ad.Fill(dt);
-            command.Dispose();
-            return dt;
-        }
-
-        /// <summary>
-        /// 将DataTable导入到指定的表中
-        /// </summary>
-        /// <param name="DataTable"></param>
-        /// <param name="TableName"></param>
-        public void InsertDataTable(DataTable DataTable, string TableName)
-        {
-            for (int i = 0; i < DataTable.Rows.Count; i++)
+            try
             {
-                for (int j = 0; j < DataTable.Columns.Count; j++)
-                {
-
-                }
+                OracleDataAdapter ad = new OracleDataAdapter(command);
+                ad.Fill(dt);
+            }
+            catch (Exception)
+            {
+                connection = new OracleConnection(DBConnectionString);
+                connection.Open();
+                command.Connection = connection;
+                OracleDataAdapter ad = new OracleDataAdapter(command);
+                ad.Fill(dt);
             }
+            command.Dispose();
+            return dt;
         }
 
         /// <summary>
@@ -316,52 +272,6 @@ namespace UAS_LabelMachine
             return dt;
         }
 
-        /// <summary>
-        /// 通过表名,字段获取DataTable类型的数据
-        /// </summary>
-        public string[] getFieldsDatas(string TableName, string Fields)
-        {
-            ArrayList arr = new ArrayList();
-            DataTable dt = new DataTable();
-            string sql = "select ";
-            sql += Fields;
-            sql += " from " + TableName;
-            command = new OracleCommand(sql, connection);
-            OracleDataAdapter ad = new OracleDataAdapter(command);
-            ad.SelectCommand = command;
-            ad.Fill(dt);
-            foreach (DataRow dc in dt.Rows)
-            {
-                arr.Add(dc[Fields]);
-            }
-            ad.Dispose();
-            command.Dispose();
-            return (string[])arr.ToArray(typeof(string));
-        }
-
-        /// <summary>
-        /// 通过表名,字段获取DataTable类型的数据
-        /// </summary>
-        public string[] getFieldsDatas(string TableName, string Fields, string Condition)
-        {
-            ArrayList arr = new ArrayList();
-            DataTable dt = new DataTable();
-            string sql = "select ";
-            sql += Fields;
-            sql += " from " + TableName + " where " + Condition;
-            command = new OracleCommand(sql, connection);
-            OracleDataAdapter ad = new OracleDataAdapter(command);
-            ad.SelectCommand = command;
-            ad.Fill(dt);
-            foreach (DataRow dc in dt.Rows)
-            {
-                arr.Add(dc[Fields]);
-            }
-            ad.Dispose();
-            command.Dispose();
-            return (string[])arr.ToArray(typeof(string));
-        }
-
         /// <summary>
         /// 根据DataTable和指定的表名更新数据,如果需要保存新增的数据则需要传递一条Insert的SQL
         /// </summary>
@@ -583,167 +493,6 @@ namespace UAS_LabelMachine
             BatchInsert(sb.ToString(), Parameter.ToArray());
         }
 
-        /// <summary>
-        /// 获取DbFind的数据的DataTable的结构
-        /// </summary>
-        /// <param name="field"></param>
-        /// <param name="caller"></param>   
-        /// <returns></returns>
-        public DataTable GetDbFindDataTable(string field, string caller)
-        {
-            string sql = "select * from dbfindsetui where ds_caller='" + caller + "' and ds_whichui='" + field + "'";
-            DataTable dt = (DataTable)ExecuteSql(sql, "select");
-            if (dt.Rows.Count != 0)
-            {
-                //通过#号分割字段
-                string[] dbfield = dt.Rows[0]["ds_findtoui"].ToString().Split('#');
-                string[] cnfield = dt.Rows[0]["ds_dbcaption"].ToString().Split('#');
-                //获取查询要查询的Table
-                string dbtable = dt.Rows[0]["ds_tables"].ToString();
-                //拼接查询的字段
-                for (int i = 0; i < dbfield.Length; i++)
-                {
-                    dbfield[i] = dbfield[i].Split(',')[0];
-                }
-                //新建一个空的DataTable
-                DataTable dt1 = new DataTable();
-                //往空的DataTable添加结构,ColumnName是中文,Caption是实际的字段名称
-                for (int i = 0; i < cnfield.Length; i++)
-                {
-                    dt1.Columns.Add(cnfield[i]);
-                    dt1.Columns[i].Caption = dbfield[i];
-                }
-                //返回一个带有结构的空的DataTable
-                // DbFind.BindTable1 = dbtable;
-                return dt1;
-            }
-            else
-            {
-                return null;
-            }
-        }
-
-        /// <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,后面的是实际的列名
-            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>
@@ -990,24 +739,6 @@ namespace UAS_LabelMachine
         }
 
 
-        /// <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);
-            OracleDataAdapter ad = new OracleDataAdapter(command);
-            ad.Fill(dt);
-            command.Dispose();
-            return dt.Rows[0][0].ToString();
-        }
-
-        /// <summary>
         /// 取Configs表中的配置,进行该客户是否执行某个操作
         /// </summary>
         /// <param name="Code"></param>
@@ -1158,7 +889,6 @@ namespace UAS_LabelMachine
             }
             command.Dispose();
         }
-        int count = 0;
         /// <summary>
         /// 调用存储过程
         /// </summary>