kak*_*ppa 1 sql data-paging ms-access-2003
我有一个 MS Access 2003 数据库,其中有一个名为 的表,product1主键名为Product Code。没有自动 ID 列。
我已经使用这个sql来进行自定义数据分页。
 SELECT *
FROM (
  SELECT Top 1  -- = PageSize
  *
  FROM
  (
   SELECT TOP 1  -- = StartPos + PageSize
   *
   FROM product1
   ORDER BY product1.[Product Code]
  ) AS sub1
  ORDER BY sub1.[Product Code] DESC
 ) AS clients
ORDER BY [Product Code]
Run Code Online (Sandbox Code Playgroud)
现在我的问题是搜索。当我在数据库表中搜索某些内容并指向它时。
如何确保仍然分页正常工作?
我也在从 C# 查询 Access(使用分页和搜索),并且使用以下代码来构建所有查询:
var sb = new StringBuilder();
sb.Append("select {0} from {1}");
sb.Append(" where {3} in (");
sb.Append("select top {4} sub.{3}");
sb.Append("    from (");
sb.Append("          select top {5} tab.{3}");
sb.Append("          from {1} tab");
sb.Append("          where {2}");
sb.Append("          order by tab.{3}");
sb.Append("    ) sub");
sb.Append("    order by sub.{3} desc");
sb.Append(")");
sb.Append("order by {3}");
sql = string.Format(sb.ToString(), this.ColumnsToSelect, this.TableName, 
    this.WhereClause, this.OrderBy, this.PageSize, this.PageNum * this.PageSize);
Run Code Online (Sandbox Code Playgroud)
请注意,为了使其工作,必须提供所有参数
(如果您实际上不想过滤任何内容,只需将其放入子句1=1中WHERE)