/// <summary> /// 执行命令(返回影响行数,-1为执行失败) /// </summary> /// <param name="sql">sql语句</param> /// <param name="param">参数 lt_: <(小于) le_: <=(小于等于) gt_: >(大于) ge_: >=(大于等于) lk_: like(模糊查询) ue_:!=(不等于)</param> /// <param name="commandType">命令类型</param> /// <param name="timeout">过期时间(秒)</param> /// <returns></returns> public static Task <int> ExecuteSqlAsync(string sql, object param = null, SugarCommandType commandType = SugarCommandType.Text, int?timeout = null) { using (DbConnection conn = DbProvider.CreateConnection(Config.DataBaseAuthority.Read)) { return(DbProvider.ExecuteSqlAsync(conn, new CommandInfo(sql, param, commandType, timeout))); } }
///// <summary> ///// 查询(以Dataset返回结果的) ///// </summary> ///// <param name="sql">sql语句</param> ///// <param name="parms">参数</param> ///// <returns>失败返回null</returns> //public static DataSet Query(string sql, params DbParameter[] parms) //{ // using (DbConnection conn = DbProvider.CreateConnection(Config.DataBaseAuthority.Read)) // { // return DbProvider.Query(conn, sql, parms); // } //} /// <summary> /// 查询单个数值(如存在多个取首行首列) /// </summary> /// <typeparam name="T">数据实体</typeparam> /// <param name="sql">sql语句</param> /// <param name="param">参数 lt_: <(小于) le_: <=(小于等于) gt_: >(大于) ge_: >=(大于等于) lk_: like(模糊查询) ue_:!=(不等于)</param> /// <param name="commandType">命令类型</param> /// <param name="sortSql">排序语句</param> /// <param name="timeout"></param> /// <returns></returns> public static Task <T> QueryScalarAsync <T>(string sql, object param = null, SugarCommandType commandType = SugarCommandType.Text, string sortSql = null, int?timeout = null) where T : struct { using (DbConnection conn = DbProvider.CreateConnection(Config.DataBaseAuthority.Read)) { return(DbProvider.QueryScalarAsync <T>(conn, sql, param, commandType, sortSql, null, timeout)); } }
/// <summary> /// 查询单个实体 /// </summary> /// <typeparam name="T">数据实体</typeparam> /// <param name="sql">sql语句</param> /// <param name="param">参数 lt_: <(小于) le_: <=(小于等于) gt_: >(大于) ge_: >=(大于等于) lk_: like(模糊查询) ue_:!=(不等于)</param> /// <param name="commandType">命令类型</param> /// <param name="sortSql">排序语句</param> /// <param name="buffered">是否缓存</param> /// <param name="timeout">过期时间(秒)</param> /// <returns></returns> public static T QuerySingle <T>(string sql, object param = null, SugarCommandType commandType = SugarCommandType.Text, string sortSql = null, bool buffered = true, int?timeout = null) where T : class { using (DbConnection conn = DbProvider.CreateConnection(Config.DataBaseAuthority.Read)) { return(DbProvider.QuerySingle <T>(conn, sql, param, commandType, sortSql, buffered, null, timeout)); } }
/// <summary> /// 构造函数 /// </summary> /// <param name="sqlText">sql语句</param> /// <param name="param">参数</param> /// <param name="type">影响结果类型</param> /// <param name="commandType">命令类型</param> /// <param name="timeout">过期时间(秒)</param> public CommandInfo(string sqlText, object param, EffentNextType type, SugarCommandType commandType = SugarCommandType.Text, int?timeout = null) { SqlText = sqlText; CommandType = commandType; Param = param; EffectRows = (int)type; Timeout = timeout; }
/// <summary> /// 构造函数 /// </summary> /// <param name="sqlText">sql语句</param> /// <param name="param">参数</param> /// <param name="effectRows">限制影响结果</param> /// <param name="commandType">命令类型</param> /// <param name="timeout">过期时间(秒)</param> public CommandInfo(string sqlText, object param, int effectRows, SugarCommandType commandType = SugarCommandType.Text, int?timeout = null) { if (effectRows <= 0) { throw new ArgumentException(nameof(effectRows) + "不能为小于1的数"); } SqlText = sqlText; CommandType = commandType; Param = param; EffectRows = effectRows; Timeout = timeout; //Transaction = transaction; }
/// <summary> /// 连表查询单个实体(2) /// </summary> /// <typeparam name="TFirst">数据实体</typeparam> /// <typeparam name="TSecond">数据实体</typeparam> /// <typeparam name="TReturn">返回数据实体</typeparam> /// <param name="map">委托-两个表数据逻辑处理</param> /// <param name="sql">sql语句</param> /// <param name="param">参数 lt_: <(小于) le_: <=(小于等于) gt_: >(大于) ge_: >=(大于等于) lk_: like(模糊查询) ue_:!=(不等于)</param> /// <param name="commandType"> 命令类型 </param> /// <param name="sortSql">排序语句</param> /// <param name="splitOn">分割两表数据的列名称</param> /// <param name="buffered">是否缓存</param> /// <param name="timeout">过期时间(秒)</param> /// <returns></returns> public static TReturn QuerySingle <TFirst, TSecond, TReturn>(Func <TFirst, TSecond, TReturn> map, string sql, object param = null, SugarCommandType commandType = SugarCommandType.Text, string sortSql = null, string splitOn = null, bool buffered = true, int?timeout = null) where TFirst : class where TSecond : class where TReturn : class { using (var conn = DbProvider.CreateConnection()) { return(DbProvider.QuerySingle <TFirst, TSecond, TReturn>(conn, map, sql, param, commandType, sortSql, splitOn, buffered, null, timeout)); } }
/// <summary> /// 分页查询列表(1) - sql分页 /// </summary> /// <typeparam name="T">数据实体</typeparam> /// <param name="pageNumber">当前页</param> /// <param name="pageSize">每页记录数</param> /// <param name="sql">sql语句</param> /// <param name="param">参数 lt_: <(小于) le_: <=(小于等于) gt_: >(大于) ge_: >=(大于等于) lk_: like(模糊查询) ue_:!=(不等于)</param> /// <param name="commandType">命令类型</param> /// <param name="sortSql">排序语句</param> /// <param name="buffered">是否缓存</param> /// <param name="timeout">过期时间(秒)</param> /// <returns></returns> public static Task <PagingList <T> > QueryPagingListAsync2 <T>(int pageNumber, int pageSize, string sql, object param = null, SugarCommandType commandType = SugarCommandType.Text, string sortSql = null, bool buffered = true, int?timeout = null) where T : class { using (DbConnection conn = DbProvider.CreateConnection(Config.DataBaseAuthority.Read)) { return(DbProvider.QueryPagingListAsync2 <T>(conn, pageNumber, pageSize, sql, param, commandType, sortSql, buffered, null, timeout)); } }
/// <summary> /// 添加 /// </summary> /// <param name="sqlText">sql语句</param> /// <param name="param">参数 lt_: <(小于) le_: <=(小于等于) gt_: >(大于) ge_: >=(大于等于) lk_: like(模糊查询) ue_:!=(不等于)</param> /// <param name="effectRows">限制影响结果</param> /// <param name="commandType">命令类型</param> /// <param name="timeout">过期时间(秒)</param> public void Add(string sqlText, object param, int effectRows, SugarCommandType commandType = SugarCommandType.Text, int?timeout = null) { _commands.Add(new CommandInfo(sqlText, param, effectRows, commandType, timeout)); }
/// <summary> /// 添加 /// </summary> /// <param name="sqlText">sql语句</param> /// <param name="param">参数 lt_: <(小于) le_: <=(小于等于) gt_: >(大于) ge_: >=(大于等于) lk_: like(模糊查询) ue_:!=(不等于)</param> /// <param name="type">影响结果类型</param> /// <param name="commandType">命令类型</param> /// <param name="timeout">过期时间(秒)</param> public void Add(string sqlText, object param, EffentNextType type, SugarCommandType commandType = SugarCommandType.Text, int?timeout = null) { _commands.Add(new CommandInfo(sqlText, param, type, commandType, timeout)); }
/// <summary> /// 添加 /// </summary> /// <param name="sqlText">sql语句</param> /// <param name="param">参数 lt_: <(小于) le_: <=(小于等于) gt_: >(大于) ge_: >=(大于等于) lk_: like(模糊查询) ue_:!=(不等于)</param> /// <param name="commandType">命令类型</param> /// <param name="timeout">过期时间(秒)</param> public void Add(string sqlText, object param, SugarCommandType commandType, int?timeout = null) { Add(sqlText, param, EffentNextType.None, commandType, timeout); }