使用c#、ado.net写一个分页查询,参数为页码和姓名,根据参数,显示用户姓名,手机号
时间: 2024-09-14 19:08:18 浏览: 37
在C#中使用ADO.NET实现分页查询可以按照以下步骤进行:
1. 首先确保已经创建了一个数据库连接,例如使用`SqlConnection`类来连接到你的数据库。
2. 准备SQL查询语句,并使用参数化查询来防止SQL注入攻击。分页查询通常涉及到`LIMIT`和`OFFSET`子句,这些在SQL Server中对应的是`ROW_NUMBER()`和窗口函数,或者通过计算起始记录位置来实现。
3. 根据传入的页码和姓名参数,构造SQL查询语句。
4. 执行查询,并从结果集中提取相应的用户姓名和手机号。
5. 关闭数据库连接。
以下是一个简单的示例代码:
```csharp
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
public class PagedUserSearch
{
private string connectionString = "你的数据库连接字符串";
public DataTable GetUserList(int pageNumber, string name)
{
DataTable dataTable = new DataTable();
string sqlQuery = @"
SELECT *
FROM (
SELECT ROW_NUMBER() OVER (ORDER BY 用户姓名) AS RowNum, 用户姓名, 手机号
FROM 用户表
WHERE 用户姓名 LIKE @name + '%'
) AS SubQueryAlias
WHERE RowNum BETWEEN @startRow AND @endRow";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
using (SqlCommand command = new SqlCommand(sqlQuery, connection))
{
command.Parameters.AddWithValue("@name", name);
int pageSize = 10; // 假设每页显示10条记录
int startRow = (pageNumber - 1) * pageSize + 1;
int endRow = startRow + pageSize - 1;
command.Parameters.AddWithValue("@startRow", startRow);
command.Parameters.AddWithValue("@endRow", endRow);
using (SqlDataReader reader = command.ExecuteReader())
{
dataTable.Load(reader);
}
}
}
return dataTable;
}
}
```
这个类`PagedUserSearch`包含了一个方法`GetUserList`,它接受页码`pageNumber`和姓名`name`作为参数,并返回一个包含用户信息的`DataTable`。
使用时,你可以实例化这个类,并调用`GetUserList`方法来获取分页后的用户数据。
阅读全文