Consulta SQLServer com paginação
Postado em : 22/04/2023
Consulta SQLServer com paginação
Segue abaixo uma procedure que executa paginação em uma consulta SQLServer e um exemplo prático de como usar essa procedure.
Procedure [GetPaginatedData]
CREATE PROCEDURE [dbo].[GetPaginatedData] @pageNumber int, @pageSize int AS BEGIN SET NOCOUNT ON; SELECT * FROM ( SELECT ROW_NUMBER() OVER (ORDER BY Id ASC) AS RowNumber, * FROM MyTable ) AS subquery WHERE RowNumber >= (@pageNumber - 1) * @pageSize + 1 AND RowNumber <= @pageNumber * @pageSize END
Essa procedure recebe dois parâmetros: @pageNumber
e @pageSize
. O @pageNumber
é o número da página que você deseja recuperar e o @pageSize
é o número de registros por página. A consulta interna usa a função ROW_NUMBER()
para atribuir um número de linha a cada registro e, em seguida, filtra o resultado para retornar apenas os registros que correspondem à página solicitada.
Agora, vamos mostrar um exemplo prático de como usar essa procedure em um aplicativo C#:
public IEnumerable<MyModel> GetPagedData(int pageNumber, int pageSize) { using (var connection = new SqlConnection("connectionString")) { connection.Open(); var command = new SqlCommand("GetPaginatedData", connection); command.CommandType = CommandType.StoredProcedure; command.Parameters.AddWithValue("@pageNumber", pageNumber); command.Parameters.AddWithValue("@pageSize", pageSize); using (var reader = command.ExecuteReader()) { var resultList = new List<MyModel>(); while (reader.Read()) { var model = new MyModel { Id = (int)reader["Id"], Name = (string)reader["Name"], // ... }; resultList.Add(model); } return resultList; } } }
Este método C# cria uma conexão com o banco de dados e executa a procedure GetPaginatedData
com os parâmetros de página e tamanho da página fornecidos. Em seguida, ele percorre os resultados da consulta e os converte em uma lista de objetos MyModel
, que são retornados ao chamador.
Com essa procedure, você pode facilmente implementar a funcionalidade de paginação em suas consultas SQLServer em seu aplicativo C#.
Links Relacionados
- ActionVerbs lidando com diferentes tipos de solicitações Http em Asp.Net MVC.
- Arquitetura CQRS
- Arrays em C#(CSharp)
- Aula 11 - Acessando Banco de Dados SQL SERVER - Criando Consultas em sua aplicação em Asp.Net MVC 4 com C#(CSharp)
- Aula 12 - MS SQL Server - Comandos SQL e Stored Procedures em sua aplicação em Asp.Net MVC 4 com C#(CSharp)
- Aula 15 - Download das ferramentas necessárias para o nosso curso de Asp.Net MVC 4 com C#(CSharp)
- Aula 16 - Criando o banco de dados e configurando o SQLServer para nosso curso de Asp.Net MVC 4 com C#(CSharp)
- Aula 17 - Criando o banco de dados e configurando o SQLServer EXPRESS para nosso curso de Asp.Net MVC 4 com C#(CSharp)
- C#(CSharp) Converter inteiro para Hexadecimal e Hexadecimal para Inteiro
- C#(CSharp) Exemplo de Conversão de um List<> de uma classe qualquer para um DataTable.
- C#(CSharp) Função para verificar se um determinado número é Primo
- Calcular Idade C# (CSharp), diferença anos entre duas datas
- Classe com Métodos de extensão C# (CSharp)
- Classe para fazer Conexão MS SqlServer em C#(CSharp)
- Classe para Ler e Gravar Cookies - Asp.Net MVC 4 com C# (CSharp)
- Classe para tratar valores nulos vindos de nossa Query SQL, C#(CSharp).
- Classes anônimas em C#(CSharp)
- Comando nameof() C#(CSharp)
- Comando NULLIF no SQLServer.
- Compare duas strings ignorando maiúsculas e minúsculas C#(CSharp).
- Configurar tempo de uma sessão em Asp.Net MVC
- Criando Tabelas Temporarias em MS-SqlServer
- Criar Classes Dinâmicas usando DynamicObject e ExpandoObject em C# (CSharp)
- Curso Instalando e configurando o MS SQL Server Express 2014 e Management Studio 2014
- Definir o dia em um DateTime.
- DELETE CASCADE no SqlServer
- Desvendando o Poder da Função STRING_AGG no SQL Server para concatenação de dados
- Diferença entre parâmetros REF e OUT em C#(CSharp)
- DROP TABLE IF EXISTS no SQL Server.
- Emitir sons pelo auto-falante do computador em C# (CSharp)
- Estrangulando um monólito C#(CSharp)
- Exemplo de acesso a dados com SQL Server em C#.
- Exemplo de consulta em SqlServer para encontrar uma chave Estrangeira
- Exemplo de Stored Procedure com tratamento de erros e transação. (SqlServer)
- Exemplos de Stored Procedure SQL Server
- Explorando Tipos de Dados Personalizados no SqlServer: Utilidade e Impacto na Performance
- Extensões para DataReader, tratando valores de suas consultas SQL (DataReaderExtensions) C#(CSharp)
- Fazendo a paginação de consultas em MySQL com o comando Limit e Offset
- Formatando datas SqlServer
- Formatar CEP em C# (CSharp)
- Função para devolver data do próximo dia da semana informado C#(CSharp).
- Função para gerar tabela com listagem contendo intervalo entre duas datas. (SqlServer)
- Gerando números randômicos para sorteio de jogos de azar C#(CSharp)
- Grafana Loki e .NET Framework com C#
- Incrementando e decrementando variáveis em C#(CSharp)
- Injeção de dependência
- Ler string de conexão (connectionStrings) do arquivo Web.config Asp.Net MVC co C#(CSharp)
- Métodos de extensão C#
- MS SQL Server Express 2014 e Management Studio 2014 - Download e Intalação
- Não consigo apagar um Banco de dados (can not drop database) - MS-SQL Server.
- Ordenando um array com o comando OrderBy C#(CSharp)
- Padrão MVC
- Parar um loop foreach usando o comando break C#(CSharp).
- Passar parâmetros jquery para Url.Action ASP.NET MVC
- Quando utilizar NOLOCK e READPAST no SqlServer.
- Recuperar a URL da página anterior em Asp.Net C# (CSharp)
- Recuperar a URL da página atual em Asp.Net C# (CSharp)
- Recuperar o nome do Controller e o nome da Action em nossa View(Página CSHTML) #Asp.Net MVC.
- Recuperar para código C# (CSharp) o valor de um componente de nossa página
- Restaurando um Banco de dados quando este fica travado informando estar restaurando, MS-SQL Server.
- Retorna o IP da conexão do Cliente em Asp.Net MVC com C# (CSharp)
- Retorna os dados do Navegador do Cliente em Asp.Net MVC com C# (CSharp)
- Rodando Script MS-SQL Server diretamente pela linha de comando
- Salvando CSV com cabeçalho no SQL Server Management Studio
- Separar String de caracteres C#(CSharp)
- Serilog e .NET Framework com C#
- Tipos de dados em C# (CSharp)
- Tipos de dados primitivos em C#(CSharp)
- Trabalhando com Cursores em MS-SQL Server.
- Tratando colunas nulas em sua Query SqlServer
- Update/Delete com INNER em MS-SQL Server
- Validando Valores nulos vindos de nosso Banco de Dados C#(CSharp)
- Validar Modelos com Data Annotation e Windows Form Application C#(CSharp)
- Verificar se uma string é um digito em C# (CSharp)