在SQL Server 2008 R2的查询中使用带有dapper的多个like子句进行分页

托尼

我使用Dapper在大表中执行分页查询。我使用的功能是这样的:

public List<WarehouseLine> GetPagedWarehouseLines(int pageNumber, int rowsPerPage, string criteria) //todo
{
    var query = @"SELECT *
                  FROM 
                      (SELECT 
                           *, 
                           ROW_NUMBER() OVER (ORDER BY ProductDescr) AS RowNum 
                       FROM 
                           WarehouseLine) AS whl 
                  WHERE 
                      whl.RowNum BETWEEN ((@PageNumber - 1) * @RowsPerPage) + 1 AND @RowsPerPage * (@PageNumber) 
                      AND (@Criteria) 
                  ORDER BY ProductDescr";

    return _db.Query<WarehouseLine>(query, new { PageNumber = pageNumber, RowsPerPage = rowsPerPage, Criteria = criteria }).ToList();
}

条件变量是具有以下值的字符串

(Productdescr like '%%') OR (PartNumber like '%%') OR (SerialNumber like '%%') OR(Manufacturer like '%%') OR (SpecialInstructions like '%%') OR (UDF3 like '%%') OR (producttags like '%%') OR (NotesPerPart like '%%') 

除了括号外,查询在SQL Server Management Studio中运行良好。但是在调试过程中,出现以下错误:

在需要条件的上下文中在“ ORDER”附近指定的非布尔类型的表达式。

我使用Dapper的最新稳定版本。

pakeha_by

“标准”变量是SQL表达式的一部分,不能将其视为SQL参数。

var query = @"SELECT *
  FROM (
  SELECT *, 
  ROW_NUMBER() OVER (ORDER BY ProductDescr) AS RowNum 
  FROM WarehouseLine) AS whl 
  WHERE whl.RowNum BETWEEN ((@PageNumber-1)*@RowsPerPage)+1 
  AND @RowsPerPage*(@PageNumber) 
  AND " 
  + Criteria + 
  @"ORDER BY ProductDescr";

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在SQL Server 2008 R2的where子句中使用比较运算符

来自分类Dev

在SQL Server 2008 R2的where子句中使用比较运算符

来自分类Dev

Dapper读取SqlHierachyId列(SQL Server 2008 R2)

来自分类Dev

在SQL Server 2008上分页

来自分类Dev

SQL Server 2008 - 带子句

来自分类Dev

从2008 R2创建SQL Server 2008备份

来自分类Dev

使用CTE查询优化SQL Server 2008 R2进行改进

来自分类Dev

使用SQL Server 2008 R2进行数据透视表查询

来自分类Dev

SQL Server 2008 R2:查询性能

来自分类Dev

在SQL Server 2008 R2中查询复杂的XML

来自分类Dev

SQL Server 2008 R2:调整查询

来自分类Dev

SQL Server 2008 R2:递归查询

来自分类Dev

SQL Server 2008 R2:具有where和Have子句的数据透视表的动态查询

来自分类Dev

SQL Server 2008 R2中的有效分页

来自分类Dev

SQL Server 2008 R2中的有效分页

来自分类Dev

在Windows Server 2008 R2上运行带有SQL Server 6.5的ASP站点

来自分类Dev

SQL Server 2008 R2不使用分配的内存

来自分类Dev

无法使用Java连接SQL Server 2008 R2

来自分类Dev

极慢的查询,其中包含多个子查询SQL Server 2008 R2

来自分类Dev

如何使用SQL查询在SQL SERVER 2008 R2中获得表定义?

来自分类Dev

SQL Server 2008 R2使用SQL查询引用表的聚集索引

来自分类Dev

SQL Server 2008 R2:结合两个查询进行优化

来自分类Dev

使用SQL Server 2008加快查询速度

来自分类Dev

SQL Server 2008 R2:从 SQL Server 查询 MS Access

来自分类Dev

选择带有CASE语句的SQL Server 2008 R2

来自分类Dev

选择带有CASE语句的SQL Server 2008 R2

来自分类Dev

错误948:带有SQL Server 2008 R2的Visual Studio 2012

来自分类Dev

具有位类型的SQL Server 2008 R2动态数据透视查询

来自分类Dev

使用Entity Framework 7和SQL Server 2008进行分页

Related 相关文章

热门标签

归档