Access 模糊参数 分页查询(access中模糊查询的关键词是什么字段)干货分享

随心笔谈3年前发布 admin
222 0 0

文章摘要

这篇文章内容描述了一段C#代码,用于动态生成SQL语句来计算特定条件下产品数量,并根据页码返回对应的数据显示集。代码的主要操作包括: 1. **生成SQL语句**:通过参数化技术生成用于计算符合条件产品数量和返回特定页数数据的SQL语句。 2. **执行查询**:使用`AccessDB`执行生成的SQL语句,计算`resultCount`(符合条件的产品数量)和`recordCount`(实际返回的数据集数量)。 3. **页码计算**:根据页码和数据总数计算当前页面的起始页码和结束页码。当页码为1时,直接返回全部数据;当页码大于1时,通过排除法获取特定范围内的数据。 4. **返回数据集**:基于计算的页码范围,生成并返回符合条件的数据集。 文章的核心内容在于代码的逻辑结构和其在数据库查询中的应用,特别是在动态数据获取和页码控制方面。

string sql=”Select Count(ID) As rcount From TbProduct WHERE classID IN(” + ids + “) AND PRODUCTNAME LIKE ‘%’+@ProductName+’%'”;

OleDbParameter[] sps=new OleDbParameter[1];

sps[0]=AccessDB.CreateParameter(“@ProductName”, OleDbType.VarChar, productName, 50, ParameterDirection.Input);

int resultCount=(int)AccessDB.ExecuteScalar(sql, sps);

recordCount=resultCount;

if (resultCount >=0)

{

if ((resultCount % pageSize)==0)

{

pageCount=resultCount / pageSize;

}

else

{

pageCount=(resultCount / pageSize) + 1;

}

if (pageIndex==1)

{

sql=”Select Top ” + pageSize.ToString() + ” * From TbProduct WHERE classID IN(” + ids + “) AND PRODUCTNAME LIKE ‘%’+@ProductName+’%’ Order by ID desc”;

}

else

{

int minRecord=(pageIndex – 1) * pageSize;

sql=”Select Top ” + pageSize.ToString() + ” * From TbProduct Where ID Not In(Select ID From (Select Top ” + minRecord.ToString() + ” ID From tbProduct Where classID IN(” + ids + “) AND PRODUCTNAME LIKE ‘%’+@ProductName+’%’ Order by ID desc )TemA) And classID IN(” + ids + “) AND PRODUCTNAME LIKE ‘%’+@ProductName+’%’ Order by ID desc”;

}

}

else

{

pageCount=0;

}

return AccessDB.ExecuteDataSet(sql, sps).Tables[0];

© 版权声明

相关文章