数据分页在 C# 中非常常见,通常可以通过在 SQL 语句中使用 OFFSET
和 FETCH
子句来实现。当然,也可以使用 LINQ to SQL 等 ORM 框架来实现数据分页。
以下是在 SQL 语句中使用 OFFSET
和 FETCH
子句实现数据分页的示例:
string sql = "SELECT * FROM MyTable ORDER BY ID OFFSET @Offset ROWS FETCH NEXT @PageSize ROWS ONLY";
using (SqlConnection conn = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
cmd.Parameters.AddWithValue("@Offset", (pageIndex - 1) * pageSize);
cmd.Parameters.AddWithValue("@PageSize", pageSize);
using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))
{
DataTable dt = new DataTable();
adapter.Fill(dt);
return dt;
}
}
}
在上面的示例中,我们使用了 OFFSET @Offset ROWS
和 FETCH NEXT @PageSize ROWS ONLY
来指定数据分页的起始位置和每页的记录数。