using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Threading.Tasks; namespace VueWebCoreApi.Tools { public class DBHelper { #region DataTable GetTable(string sql) 获取DataTable /// /// 获取DataTable /// /// 传入SQL语句 /// 返回DataTable public static DataTable GetTable(string sql) { DataOperator dbo = null; try { if (dbo == null) { dbo = new DataOperator(); } return dbo.getTable(sql); } catch (Exception ex) { //创建日志记录组件实例 LogHelper.WriteLog(ex); //throw (ex); return null; } finally { if (dbo != null) { dbo.Close(); } } } /// /// 获取DataTable /// /// 传入SQL语句 /// SqlParameter 参数 /// 返回DataTable public static DataTable GetTable(string sql, params SqlParameter[] parameters) { DataOperator dbo = null; try { if (dbo == null) { dbo = new DataOperator(); } return dbo.getTable(sql, parameters); } catch (Exception ex) { //创建日志记录组件实例 LogHelper.WriteLog(ex); throw (ex); } finally { if (dbo != null) { dbo.Close(); } } } #endregion /// /// Dataset获取数据表 /// /// /// /// #region public static DataSet GetData(string sql, params SqlParameter[] parameters) { DataOperator dbo = null; try { if (dbo == null) { dbo = new DataOperator(); } return dbo.getdate(sql, parameters); } catch (Exception ex) { //创建日志记录组件实例 LogHelper.WriteLog(ex); //throw (ex); //创建日志记录组件实例 return null; } finally { if (dbo != null) { dbo.Close(); } } } #endregion #region GetCount(string sql) 获取数据行数,如果出错返回"-1" /// /// 获取数据行数,如果出错返回"-1" /// /// 传入SQL语句 /// 如果出错返回"-1" public static int GetCount(string sql) { DataOperator dbo = null; try { if (dbo == null) { dbo = new DataOperator(); } return dbo.getCount(sql); } catch (Exception ex) { //创建日志记录组件实例 LogHelper.WriteLog(ex); //throw (ex); //创建日志记录组件实例 return 0; } finally { if (dbo != null) { dbo.Close(); } } } /// /// 执行多条sql语句的事物 /// /// /// public static int Executesqltran(List list, params SqlParameter[] parameters) { DataOperator dbo = null; try { if (dbo == null) { dbo = new DataOperator(); } return dbo.ExecuteSqlTran(list, parameters); } catch (Exception ex) { LogHelper.WriteLog(ex); throw (ex); //创建日志记录组件实例 return 0; } finally { if (dbo != null) { dbo.Close(); } } } /// /// 获取数据行数,如果出错返回"-1" /// /// 传入SQL语句 /// SqlParameter 参数 /// 如果出错返回"-1" public static int GetCount(string sql, params SqlParameter[] parameters) { DataOperator dbo = null; try { if (dbo == null) { dbo = new DataOperator(); } return dbo.getCount(sql, parameters); } catch (Exception ex) { LogHelper.WriteLog(ex); throw (ex); //创建日志记录组件实例 return 0; } finally { if (dbo != null) { dbo.Close(); } } } #endregion #region GetObject(string sql) 获取表格第一行第一列 /// /// 获取表格第一行第一列 /// /// 传入SQL语句 /// 如果出错返回"null" public static object GetObject(string sql) { DataOperator dbo = null; try { if (dbo == null) { dbo = new DataOperator(); } return dbo.getObject(sql); } catch (Exception ex) { LogHelper.WriteLog(ex); throw (ex); //创建日志记录组件实例 return null; } finally { if (dbo != null) { dbo.Close(); } } } /// /// 获取表格第一行第一列 /// /// 传入SQL语句 /// SqlParameter 参数 /// 返回Object public static object GetObject(string sql, params SqlParameter[] parameters) { DataOperator dbo = null; try { if (dbo == null) { dbo = new DataOperator(); } return dbo.getObject(sql, parameters); } catch (Exception ex) { LogHelper.WriteLog(ex); throw (ex); //创建日志记录组件实例 return null; } finally { if (dbo != null) { dbo.Close(); } } } #endregion #region ExecuteSql(string sql) 执行SQL语句返回是否成功 /// /// 执行SQL语句返回是否成功 /// /// 传入SQL语句 /// 返回是否成功 public static bool ExecuteSql(string sql) { DataOperator dbo = null; try { if (dbo == null) { dbo = new DataOperator(); } return dbo.executeSql(sql); } catch (Exception ex) { //创建日志记录组件实例 LogHelper.WriteLog(ex); //throw (ex); //创建日志记录组件实例 return false; } finally { if (dbo != null) { dbo.Close(); } } } /// /// 执行SQL语句返回是否成功 /// /// 传入SQL语句 /// SqlParameter 参数 /// 返回是否成功 public static bool ExecuteSql(string sql, params SqlParameter[] parameters) { DataOperator dbo = null; //ParamCollections pc = new ParamCollections(); try { if (dbo == null) { dbo = new DataOperator(); } return dbo.executeSql(sql, parameters); } catch (Exception ex) { LogHelper.WriteLog(ex); throw (ex); //创建日志记录组件实例 return false; } finally { if (dbo != null) { dbo.Close(); } } } #endregion #region ExecuteProduct(string productName, params SqlParameter[] parameters) 执行存储过程返回返回值 /// /// 执行存储过程返回返回值 /// /// 存储过程名字 /// SqlParameter 参数 /// 返回值Hash表 public static Hashtable ExecuteProduct(string productName, params SqlParameter[] parameters) { DataOperator dbo = null; //ParamCollections pc = new ParamCollections(); try { if (dbo == null) { dbo = new DataOperator(); } return dbo.executeProduct(productName, parameters); } catch (Exception ex) { //创建日志记录组件实例 LogHelper.WriteLog(ex); //throw (ex); //创建日志记录组件实例 return new Hashtable(); } finally { if (dbo != null) { dbo.Close(); } } } #endregion #region ExecuteProductData(string productName, params SqlParameter[] parameters) 执行存储过程返回DataTable /// /// 执行存储过程返回返回值 /// /// 存储过程名字 /// SqlParameter 参数 /// 返回值Hash表 public static DataTable ExecuteProductData(string productName, params SqlParameter[] parameters) { DataOperator dbo = null; //ParamCollections pc = new ParamCollections(); try { if (dbo == null) { dbo = new DataOperator(); } return dbo.ExecuteProductData(productName, parameters); } catch (Exception ex) { //创建日志记录组件实例 LogHelper.WriteLog(ex); throw new Exception(ex.Message); } finally { if (dbo != null) { dbo.Close(); } } } #endregion #region ExecuteProductData(string productName, params SqlParameter[] parameters) 执行存储过程返回List /// /// 执行存储过程返回返回值 /// /// 存储过程名字 /// SqlParameter 参数 /// 返回值Hash表 public static List ExecuteProductDataList(string productName, params SqlParameter[] parameters) { DataOperator dbo = null; //ParamCollections pc = new ParamCollections(); try { if (dbo == null) { dbo = new DataOperator(); } return dbo.ExecuteProductDataList(productName, parameters); } catch (Exception ex) { LogHelper.WriteLog(ex); throw new Exception(ex.Message); } finally { if (dbo != null) { dbo.Close(); } } } #endregion #region ExecuteProductData(string productName, params SqlParameter[] parameters) 执行存储过程返回ArrayList /// /// 执行存储过程返回返回值 /// /// 存储过程名字 /// SqlParameter 参数 /// 返回值List public static ArrayList executeProductList(string produreName, bool returnDt, params SqlParameter[] parameters) { DataOperator dbo = null; //ParamCollections pc = new ParamCollections(); try { if (dbo == null) { dbo = new DataOperator(); } return dbo.executeProduct(produreName, parameters, returnDt); } catch (Exception ex) { LogHelper.WriteLog(ex); throw new Exception(ex.Message); } finally { if (dbo != null) { dbo.Close(); } } } #endregion #region ExecuteProductData(string productName) 执行存储过程返回bool /// /// 执行存储过程返回返回值 /// /// 存储过程名字 /// SqlParameter 参数 /// 返回值DataTable表 public static bool ExecuteProductbool(string productName, params SqlParameter[] parameters) { DataOperator dbo = null; //ParamCollections pc = new ParamCollections(); try { if (dbo == null) { dbo = new DataOperator(); } return dbo.ExecuteProduct(productName, parameters); } catch (Exception ex) { LogHelper.WriteLog(ex); throw (ex); //创建日志记录组件实例 } finally { if (dbo != null) { dbo.Close(); } } } #endregion #region GetDataByPage() 分页查询 /// /// 分页查询 /// /// 表名 /// 需要返回的列 /// 排序字段名 /// 页尺寸 /// 页码 /// 设置排序类型, 非 0 值则降序 /// 查询条件 (注意: 不要加 where) /// 总记录 /// public static DataTable GetDataByPage(string tablename, string filename, string sortfilename, int PageSize, int PageIndex, int OrderType, string strWhere, out int RecordCount) { RecordCount = 0; //创建参数 SqlParameter[] param = { new SqlParameter("@tblName", SqlDbType.VarChar, 50), new SqlParameter("@strGetFields", SqlDbType.VarChar, 1000), new SqlParameter("@fldName", SqlDbType.VarChar, 255), new SqlParameter("@PageSize", SqlDbType.Int), new SqlParameter("@PageIndex", SqlDbType.Int), new SqlParameter("@OrderType", SqlDbType.Bit,1), new SqlParameter("@strWhere", SqlDbType.VarChar,500), new SqlParameter("@RecordCount", SqlDbType.Int) }; param[0].Value = tablename; param[1].Value = filename; param[2].Value = sortfilename; param[3].Value = PageSize; param[4].Value = PageIndex; param[5].Value = OrderType; param[6].Value = strWhere; param[7].Direction = ParameterDirection.Output; DataOperator dbo = null; try { if (dbo == null) { dbo = new DataOperator(); } DataTable dt = dbo.ExecuteProductData("GetDataByPage", param); RecordCount = (int)param[7].Value; return dt; } catch (Exception ex) { LogHelper.WriteLog(ex); throw ex; } finally { if (null != dbo) { dbo.Close(); dbo = null; } } } /// /// 分页查询(支持JOIN) /// /// 表名 /// 需要返回的列 /// 排序字段名(默认升序,降序需在排序字段名后面DESC关键字:sortField Desc) /// 页尺寸 /// 页码 /// 查询条件 (注意: 不要加 where) /// 总记录 /// public static DataTable GetDataByPage_V2(string tablename, string filename, string sortfilename, int PageSize, int PageIndex, string strWhere, out int RecordCount) { RecordCount = 0; //创建参数 SqlParameter[] param = { new SqlParameter("@tblName", SqlDbType.VarChar, 200), new SqlParameter("@strGetFields", SqlDbType.VarChar, 500), new SqlParameter("@fldName", SqlDbType.VarChar, 255), new SqlParameter("@PageSize", SqlDbType.Int), new SqlParameter("@PageIndex", SqlDbType.Int), new SqlParameter("@strWhere", SqlDbType.VarChar,500), new SqlParameter("@RecordCount", SqlDbType.Int), new SqlParameter("@TotalPage", SqlDbType.Int) }; param[0].Value = tablename;//表名 param[1].Value = filename;//需要返回的列 param[2].Value = sortfilename;//排序字段名 param[3].Value = PageSize;//页尺寸 param[4].Value = PageIndex;//页码 param[5].Value = strWhere;//查询条件 param[6].Direction = ParameterDirection.ReturnValue;//总记录 param[7].Direction = ParameterDirection.Output;//总页数 DataOperator dbo = null; try { if (dbo == null) { dbo = new DataOperator(); } DataTable dt = dbo.ExecuteProductData("GetDataByPage_V2", param); RecordCount = (int)param[6].Value; return dt; } catch (Exception ex) { LogHelper.WriteLog(ex); throw ex; } finally { if (null != dbo) { dbo.Close(); dbo = null; } } } /// /// 分页查询(支持JOIN) /// /// 表名 /// 需要返回的列 /// 排序字段名(默认升序,降序需在排序字段名后面DESC关键字:sortField Desc) /// 页尺寸 /// 页码 /// 查询条件 (注意: 不要加 where) /// 总记录 /// public static DataTable GetDataByPage_V2_Join(string tablename, string filename, string sortfilename, int PageSize, int PageIndex, string strWhere, out int RecordCount) { RecordCount = 0; //创建参数 SqlParameter[] param = { new SqlParameter("@tblName", SqlDbType.VarChar, 200), new SqlParameter("@strGetFields", SqlDbType.VarChar, 500), new SqlParameter("@fldName", SqlDbType.VarChar, 255), new SqlParameter("@PageSize", SqlDbType.Int), new SqlParameter("@PageIndex", SqlDbType.Int), new SqlParameter("@strWhere", SqlDbType.VarChar,500), new SqlParameter("@RecordCount", SqlDbType.Int), new SqlParameter("@TotalPage", SqlDbType.Int) }; param[0].Value = tablename;//表名 param[1].Value = filename;//需要返回的列 param[2].Value = sortfilename;//排序字段名 param[3].Value = PageSize;//页尺寸 param[4].Value = PageIndex;//页码 param[5].Value = strWhere;//查询条件 param[6].Direction = ParameterDirection.ReturnValue;//总记录 param[7].Direction = ParameterDirection.Output;//总页数 DataOperator dbo = null; try { if (dbo == null) { dbo = new DataOperator(); } DataTable dt = dbo.ExecuteProductData("GetDataByPage_V2_Join", param); RecordCount = (int)param[6].Value; return dt; } catch (Exception ex) { LogHelper.WriteLog(ex); throw ex; } finally { if (null != dbo) { dbo.Close(); dbo = null; } } } #endregion #region ParametersStrGet(SqlParameter[] parameters) [用于日志文本输出] 将SqlParameter数组参数转成字符串. /// /// [用于日志文本输出] 将SqlParameter数组参数转成字符串. /// /// 参数数组 /// private static string ParametersStrGet(SqlParameter[] parameters) { string parametersHeadStr = @"参数:{{{0}}}"; string parametersContentStr = ""; int count = 0; foreach (SqlParameter sp in parameters) { if (count++ > 0) parametersContentStr += @","; parametersContentStr += string.Format("{0}:{1}", sp.ParameterName, sp.Value); } return string.Format(parametersHeadStr, parametersContentStr); } #endregion } }