在C#中使用ADO.NET写一个分页查询接口:接口参数为页码和姓名,根据参数,显示用户姓名、手机号,每页20条记录,支持按姓名模糊检索用户数据
时间: 2024-09-15 12:07:48 浏览: 53
在C#中,你可以使用ADO.NET(Active Directory Object Model for .NET)结合LINQ (Language Integrated Query) 来实现一个分页查询接口,例如通过SqlCommand、SqlDataReader等来操作数据库。假设你有一个名为`Users`的表,包含`Name`和`PhoneNumber`字段。这里是一个简单的示例:
```csharp
using System;
using System.Data.SqlClient;
using System.Linq;
public interface IUserRepository
{
List<User> GetUsers(int pageNumber, string searchTerm);
}
public class UserRepository : IUserRepository
{
private readonly string _connectionString; // 假设这是你的数据库连接字符串
public UserRepository(string connectionString)
{
_connectionString = connectionString;
}
public List<User> GetUsers(int pageNumber, string searchTerm)
{
int pageSize = 20;
int offset = (pageNumber - 1) * pageSize;
using (var connection = new SqlConnection(_connectionString))
{
var query = $"SELECT Name, PhoneNumber FROM Users WHERE Name LIKE '%{searchTerm}%' ORDER BY Name OFFSET {offset} ROWS FETCH NEXT {pageSize} ROWS ONLY";
connection.Open();
using (var reader = connection.ExecuteReader(query))
{
return reader.Read()
? reader.AsEnumerable().Select(row => new User
{
Name = row.GetString(0),
PhoneNumber = row.GetString(1)
}).ToList()
: new List<User>();
}
}
}
// 定义User类,如果不存在可以自动生成
public class User
{
public string Name { get; set; }
public string PhoneNumber { get; set; }
}
}
```
在这个例子中,`GetUsers`方法接受页码和搜索关键词,构造SQL查询并应用分页和模糊搜索条件。然后,它返回一个User对象列表。
阅读全文