首页 > 数据库 >分页查询任务列表 支持SQL

分页查询任务列表 支持SQL

时间:2023-10-30 21:23:29浏览次数:29  
标签:分页 parameters SQL 列表 AppendFormat sql new where SqlParameter

/// <summary>
/// 分页查询任务列表
/// </summary>
/// <param name="where"></param>
/// <returns></returns>
public PageModel<TaskModel> GetListByPageView(TaskSearchModel where)
{
    int rowCount = 0;
    try
    {
        var sql = new StringBuilder(@"SELECT DISTINCT t.*
                FROM Task t WITH(NOLOCK)
                LEFT JOIN TaskExecute te WITH(NOLOCK) ON t.Id = te.TaskId AND te.RowStatus=1 
                Where 1=1 AND t.RowStatus=1");
        var parameters = new List<SqlParameter>();
        if (!string.IsNullOrEmpty(where.No))
        {
            sql.AppendFormat(" AND t.No=@No");
            parameters.Add(new SqlParameter("@No", where.No));
        }
        if (!string.IsNullOrEmpty(where.NameLike))
        {
            sql.AppendFormat(" AND t.Name LIKE '%{0}%'", where.NameLike);
            //parameters.Add(new SqlParameter("@Name", where.NameLike));
        }
        if (where.ProjectId > 0)
        {
            sql.AppendFormat(" AND t.ProjectId=@ProjectId");
            parameters.Add(new SqlParameter("@ProjectId", where.ProjectId));
        }
        if (where.ModuleId > 0)
        {
            sql.AppendFormat(" AND t.ModuleId=@ModuleId");
            parameters.Add(new SqlParameter("@ModuleId", where.ModuleId));
        }
        if (where.VersionsId > 0)
        {
            sql.AppendFormat(" AND t.VersionsId=@VersionsId");
            parameters.Add(new SqlParameter("@VersionsId", where.VersionsId));
        }
        if (where.DemandId > 0)
        {
            sql.AppendFormat(" AND t.DemandId=@DemandId");
            parameters.Add(new SqlParameter("@DemandId", where.DemandId));
        }
        if (where.State >= 0)
        {
            sql.AppendFormat(" AND t.State=@State");
            parameters.Add(new SqlParameter("@State", where.State));
        }
        if (where.QATestState >= 0)
        {
            sql.AppendFormat(" AND t.QATestState=@QATestState");
            parameters.Add(new SqlParameter("@QATestState", where.QATestState));
        }
        if (where.PrincipalId > 0)
        {
            sql.AppendFormat(" AND te.PrincipalId=@PrincipalId");
            parameters.Add(new SqlParameter("@PrincipalId", where.PrincipalId));
        }
        if (where.ScheduledStartTime.HasValue)
        {
            //sql.AppendFormat(" AND te.ScheduledStartTime >= @ScheduledStartTime");
            sql.AppendFormat(" AND t.ScheduledStartTime >= @ScheduledStartTime");
            parameters.Add(new SqlParameter("@ScheduledStartTime", where.ScheduledStartTime.Value.Date));
        }
        if (where.ScheduledEndTime.HasValue)
        {
            //sql.AppendFormat(" AND te.ScheduledEndTime <= @ScheduledEndTime");
            sql.AppendFormat(" AND t.ScheduledEndTime <= @ScheduledEndTime");
            parameters.Add(new SqlParameter("@ScheduledEndTime", where.ScheduledEndTime.Value.Date.GetDayLastTime()));
        }
        if (where.ActualStartTime.HasValue)
        {
            sql.AppendFormat(" AND te.ActualStartTime >= @ActualStartTime");
            parameters.Add(new SqlParameter("@ActualStartTime", where.ActualStartTime.Value.Date));
        }
        if (where.ActualEndTime.HasValue)
        {
            sql.AppendFormat(" AND te.ActualEndTime <= @ActualEndTime");
            parameters.Add(new SqlParameter("@ActualEndTime", where.ActualEndTime.Value.Date.GetDayLastTime()));
        }
        var exeSql = CommonHelpLD.GetRowIdSql("CreatedOn") + "  * FROM (" + sql.ToString() + ")TableTEMP";
        exeSql = SqlUtility.GetLimitPageSqlCommandSqlServer(exeSql, where.PageIndex, where.PageSize);

        var typeModel = typeof(TaskModel);
        var modelProperties = MfModelInfo.GetProperties(typeModel);
        var dataList = SqlUtility.GetExeResultToList<TaskModel, SqlParameter, SqlDataReader>(dbHelper, DataBaseName, exeSql, parameters, modelProperties, out rowCount);
        return new PageModel<TaskModel>(dataList, where.PageIndex, where.PageSize, rowCount);
    }
    catch (Exception ex)
    {
        return new PageModel<TaskModel>(null, where.PageIndex, where.PageSize, rowCount);
    }
}

 

标签:分页,parameters,SQL,列表,AppendFormat,sql,new,where,SqlParameter
From: https://www.cnblogs.com/stevenchen2016/p/17798862.html

相关文章

  • python sqlalchemy批量插入大量数据,性能最佳!
    defcreate_user_items(db:Session,mouse_events,user,events_dict):mouse_events=json.loads(mouse_events)db.execute(models.Sessions.__table__.insert(),[{"user_id":user,"x_coordinate":event["x_cor&q......
  • python sqlalchemy 动态设置表名__tablename__,一个model对应多个table
    fromsqlalchemyimportcreate_engine,Column,BigInteger,Stringfromsqlalchemy.ext.declarativeimportdeclarative_basefromsqlalchemy.ormimportsessionmakerbase=declarative_base()engine=create_engine("postgresql://postgresadmin:[email protected]......
  • 【技术分享】Amazon RDS MySQL参数说明及性能调优
    在亚马逊云科技的RDS中支持几乎主流的数据库,对于亚马逊云中的数据库的参数设置及性能调优对于我们的日常业务的运行会很有帮助。本篇将对于Amazon RDSMySQL的参数说明及性能调优。RDSMySQL的执行基本架构1.我们都知道,基础设施的潜在异常是常见的,也是不可避免的。Flamingo零售......
  • 【技术分享】Amazon RDS MySQL常见故障分析和排查
    在亚马逊云的RDS中支持几乎主流的数据库,对于亚马逊云中的数据库的问题排查对于我们的日常业务的稳定运行会很有帮助。本篇将对于Amazon RDSMySQL常见故障问题的分析和排查办法。RDS提供了强大的适配工作负载功能对于RDS的责任共担RDS常见连接问题Check:√客户端IP地址是否在D......
  • 使用mysqldump进行数据库备份实战遇到的问题
    [root@mysql~]#mysqldump-uroot-pdb_shop>/opt/db_shop.sqlEnterpassword:mysqldump:Couldn'texecute'SHOWVARIABLESLIKE'gtid\_mode'':Table'performance_schema.session_variables'doesn'texist(1146)原......
  • [sql]使用sql语句增加列,并且设置默认值
    有的时候,我们需要对已存在的表进行插入列的情况,当然,可以使用navicat等工具直接可视化操作,命令行的话,如下:altertable表名 add column列名 数据类型 default默认值 ;demo:altertableT_DB_AutoBackupaddcolumnbOpenint(4)default0; ......
  • Ubuntu18.04安装mysql5.7.27
    步骤如下:1.获取mysql-apt-config工具wgethttps://dev.mysql.com/get/mysql-apt-config_0.8.11-1_all.deb2.安装config工具第一项点进去选择5.7(默认是8.0)dpkg-imysql-apt-config_0.8.11-1_all.deb3.更新源sudoapt-getupdate4.安装mysqksudoapt-getinstallmysql-server......
  • Mysql数据查询逻辑
    MySQL是一定有一个唯一非空索引的,如果有主键则是主键,没有主键则是用唯一键,唯一键也没有则会自动生成一个隐藏的字段作为主键;然后以这个字段作为聚簇索引;所以比如表foo,它的每一行的所有列数据是连续的(至少每一列数据的“指针”值在行里是连续的,比如text这种列,在一行里可能只是存储......
  • PL/SQL 基础用法
    PL/SQL基础用法数据库相关showdatabases;showtablestatus;showopentables;showcreatedatabaseleetcode;createdatabasemy_test;showdatabases;dropdatabasemy_test;数据库引擎selectdistinctenginefrominformation_schema.TABLES;createdatabasele......
  • 【MySQL】基础篇-约束
    1.基础知识1.1为什么需要约束?为了保证数据的完整性!1.2什么叫约束?对表中字段的限制。1.3约束的分类:角度1:约束的字段的个数单列约束vs多列约束角度2:约束的作用范围列级约束:将此约束声明在对应字段的后面表级约束:在表中所有字段都声明完,在所有字段的后面声明的约束角度3:约束的......