中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

如何在C#中實現SQL Server的分頁查詢

c#
小樊
144
2024-09-06 04:56:27
欄目: 云計算

在C#中實現SQL Server的分頁查詢,可以使用以下幾種方法:

  1. 使用ROW_NUMBER()函數:
using System;
using System.Data.SqlClient;

namespace SqlServerPagination
{
    class Program
    {
        static void Main(string[] args)
        {
            string connectionString = "your_connection_string";
            int pageNumber = 1;
            int pageSize = 10;

            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                connection.Open();

                string sql = $@"
                    SELECT * FROM (
                        SELECT *, ROW_NUMBER() OVER (ORDER BY Id) AS RowNumber
                        FROM YourTable
                    ) AS PagedTable
                    WHERE RowNumber BETWEEN ((@PageNumber - 1) * @PageSize + 1) AND (@PageNumber * @PageSize)";

                using (SqlCommand command = new SqlCommand(sql, connection))
                {
                    command.Parameters.AddWithValue("@PageNumber", pageNumber);
                    command.Parameters.AddWithValue("@PageSize", pageSize);

                    using (SqlDataReader reader = command.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            Console.WriteLine($"Id: {reader["Id"]}, Name: {reader["Name"]}");
                        }
                    }
                }
            }
        }
    }
}
  1. 使用OFFSET和FETCH子句(僅適用于SQL Server 2012及更高版本):
using System;
using System.Data.SqlClient;

namespace SqlServerPagination
{
    class Program
    {
        static void Main(string[] args)
        {
            string connectionString = "your_connection_string";
            int pageNumber = 1;
            int pageSize = 10;

            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                connection.Open();

                string sql = $@"
                    SELECT *
                    FROM YourTable
                    ORDER BY Id
                    OFFSET (@PageNumber - 1) * @PageSize ROWS
                    FETCH NEXT @PageSize ROWS ONLY";

                using (SqlCommand command = new SqlCommand(sql, connection))
                {
                    command.Parameters.AddWithValue("@PageNumber", pageNumber);
                    command.Parameters.AddWithValue("@PageSize", pageSize);

                    using (SqlDataReader reader = command.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            Console.WriteLine($"Id: {reader["Id"]}, Name: {reader["Name"]}");
                        }
                    }
                }
            }
        }
    }
}

請注意,將your_connection_string替換為你的SQL Server連接字符串,并將YourTable替換為你要查詢的表名。這兩個示例都使用了分頁參數pageNumberpageSize,你可以根據需要調整這些值。

0
汕尾市| 邹平县| 新邵县| 托克逊县| 海兴县| 屏东市| 华蓥市| 安吉县| 阿荣旗| 格尔木市| 略阳县| 江西省| 隆林| 丰顺县| 清河县| 鱼台县| 托克托县| 永州市| 大姚县| 福建省| 建始县| 巴青县| 巫山县| 清涧县| 北流市| 乐昌市| 西华县| 舟山市| 农安县| 奎屯市| 精河县| 陆河县| 塘沽区| 隆子县| 长兴县| 麻阳| 广汉市| 绥化市| 大关县| 宁津县| 永德县|