/// <summary> /// 执行查询语句的泛型方法,返回单个实体类 /// </summary> /// <typeparam name="T">返回实体对象的类型</typeparam> /// <param name="cmd">SqlCommand</param> /// <param name="objSinleHandler">委托方法</param> /// <param name="cmdText">查询字符串</param> /// <param name="cmdParams">查询参数</param> /// <returns></returns> public T ExecSelectSingleCmd <T>(SqlCommand cmd, objectHandler <T> objSinleHandler, string cmdText, params SqlParameter[] cmdParams) { T obj = default(T); //T代表不确定的类型 try { PrepareCommand(cmd, cmdParams, cmdText); using (SqlDataReader dr = cmd.ExecuteReader()) { ClearParameters(cmd); if (dr.Read()) { obj = objSinleHandler(dr); //调用委托方法,传递游标参数 } dr.Close(); } return(obj); } catch (SqlException ex) { RollBackTran(); throw ex; } finally { CloseConnection(); } }
/// <summary> /// 执行查询语句的泛型方法,返回单个实体类 /// </summary> /// <typeparam name="T">返回实体对象的类型</typeparam> /// <param name="objSinleHandler">委托方法</param> /// <param name="cmdText">查询字符串</param> /// <param name="cmdParams">查询参数</param> /// <returns></returns> public T ExecSelectSingleCmd <T>(objectHandler <T> objSinleHandler, string cmdText, params SqlParameter[] cmdParams) { using (SqlCommand cmd = new SqlCommand()) { return(ExecSelectSingleCmd <T>(cmd, objSinleHandler, cmdText, cmdParams)); } }
/// <summary> /// 执行查询语句的泛型方法 /// </summary> /// <typeparam name="T">返回实体对象的类型</typeparam> /// <param name="cmd">SqlCommand</param> /// <param name="objHandler">委托方法</param> /// <param name="cmdText">查询字符串</param> /// <param name="cmdParams">查询参数</param> /// <returns></returns> public List <T> ExecSelectCmd <T>(SqlCommand cmd, objectHandler <T> objHandler, string cmdText, params SqlParameter[] cmdParams) { List <T> objList = null; //T代表不确定的类型 try { PrepareCommand(cmd, cmdParams, cmdText); using (SqlDataReader dr = cmd.ExecuteReader()) { while (dr.Read()) { if (objList == null) { objList = new List <T>(); } T obj = objHandler(dr); //调用委托方法,传递游标参数 objList.Add(obj); //添加到集合中 } dr.Close(); } return(objList); } catch (SqlException ex) { RollBackTran(); throw ex; } finally { CloseConnection(); } }