Instruções passo a passo: adicionando validação a um aplicativo de dados de N camadas
A Validação de dados é o processo que confirma que os valores inseridos em objetos de dados (por exemplo, DataTables ou classes LINQ to SQL) obedecem às restrições do esquema de um objeto. A validação também garante a conformidade com regras estabelecidas para o aplicativo. É uma boa prática validar os dados antes de enviar as atualizações ao banco de dados subjacente, o que reduz os erros. Também reduz o número potencial de processamentos entre um aplicativo e o banco de dados.
Essa explicação fornece instruções passo a passo para adicionar validação a um aplicativo de n camadas (a solução criada no tópico Instruções passo a passo: criando um aplicativo de dados de N camadas).
Durante essa explicação passo a passo, você aprenderá a executar as seguintes tarefas:
Gere automaticamente classes parciais, usando o Criando e editando conjuntos de dados tipados.
Adicione o código para executar a validação quando o valor em uma coluna individual é alterado.
Pré-requisitos
Para concluir esta explicação passo a passo, você precisará do seguinte:
A solução e os projetos associados criados no Instruções passo a passo: criando um aplicativo de dados de N camadas.
Acesse o banco de dados de exemplo Northwind. Para obter mais informações, consulte Como instalar bancos de dados de exemplo.
Dica
Seu computador pode mostrar nomes ou locais diferentes para alguns dos elementos da interface do usuário do Visual Studio nas instruções a seguir. A edição do Visual Studio que você possui e as configurações que você usa determinam esses elementos. Para obter mais informações, consulte Personalizando configurações de desenvolvimento no Visual Studio.
Abrindo a solução NTierWalkthrough
Para abrir a solução NTierWalkthrough
No menu Arquivo, aponte para Abrir, clique em Projeto/Solução, em seguida, navegue até o local do arquivo NTierWalkthrough.sln.
Dica
O arquivo NTierWalkthrough.sln é criado no tópico Instruções passo a passo: criando um aplicativo de dados de N camadas e é um pré-requisito para a conclusão deste passo a passo.Conclua o tópico Instruções passo a passo: criando um aplicativo de dados de N camadas, salvando todos os projetos quando tiver terminado, se ainda não tiver feito isso.
Adicionando validação para verificar dados durante uma alteração de coluna individual
Esse procedimento adicionará a validação para verificar se a coluna OrderDate no novo pedido está definida com um valor da data atual ou anterior. O requisito deste aplicativo é que a coluna OrderDate não pode ter uma data posterior a de hoje; não são permitidos pedidos futuros.
Para adicionar a validação para verificar o valor inserido na coluna OrderDate
Abra o conjunto de dados no Criando e editando conjuntos de dados tipados clicando duas vezes no arquivo NorthwindDataSet.xsd, no projeto DataAccessTier do Gerenciador de Soluções.
Clique duas vezes na coluna OrderDate da tabela de Pedidos no designer. Essa ação cria o manipulador de eventos ColumnChanging.
Dica
O Designer de Conjunto de Dados não cria automaticamente um manipulador para o evento do C#.O código necessário para manipular o evento em C# está incluído posteriormente neste procedimento.SampleColumnChangingEvent é criado e inscrito no evento ColumnChanging no método EndInit.
Adicione o código para verificar se e.ProposedValue para a coluna OrderDate contém a data atual ou anterior. Se o valor proposto for inválido, configure a coluna para indicar que ela contém um erro.
O exemplo de código a seguir valida que a coluna OrderDate contém a data atual ou anterior. Se o valor de OrderDate for uma data posterior à atual, a coluna OrderDate será definida como um erro. A cláusula Else limpa o erro se OrderDate for hoje ou antes.
Cole o código do Visual Basic no manipulador de eventos ColumnChanging. Cole o código C# na declaração de classe parcial OrdersDataTable.
If (e.Column.ColumnName = Me.OrderDateColumn.ColumnName) Then If CType(e.ProposedValue, DateTime) > Today Then e.Row.SetColumnError(e.Column, "OrderDate cannot be in the future") Else e.Row.SetColumnError(e.Column, "") End If End If
// Replace the NorthwindDataSet partial class with the following: public partial class NorthwindDataSet { partial class OrdersDataTable { public override void EndInit() { base.EndInit(); // Configure the ColumnChanging event // to call the SampleColumnChangingEvent method. ColumnChanging += SampleColumnChangingEvent; } public void SampleColumnChangingEvent(object sender, System.Data.DataColumnChangeEventArgs e) { if (e.Column.ColumnName == OrderDateColumn.ColumnName) { if ((System.DateTime)e.ProposedValue > System.DateTime.Today) { e.Row.SetColumnError("OrderDate", " OrderDate cannot be in the future"); } else { e.Row.SetColumnError("OrderDate", ""); } } } } }
Testando o aplicativo
Para testar o aplicativo, altere o valor da coluna OrderDate para uma data que não seja válida.
Para testar o aplicativo
Pressione F5.
Os dados das tabelas Clientes e Pedidos são exibidos no formulário.
No DataGridView que contém os pedidos, altere o valor na coluna OrderDate (de qualquer registro) para a data de amanhã.
Navegue para fora da linha para aceitar a alteração.
A validação falha e um ícone de erro aparece na célula OrderDate, que contém o valor inválido.
Coloque o ponteiro do mouse sobre o ícone de erro para exibir o erro de validação.
Feche o formulário.
Próximas etapas
Dependendo dos requisitos do aplicativo, há várias etapas que podem ser desejadas depois de adicionar a validação a um aplicativo de n camadas. Por exemplo, pode ser conveniente fazer o seguinte aperfeiçoamento para este aplicativo:
- Adicione a validação que verifica as alterações quando um registro inteiro é alterado. Para obter informações, consulte Como adicionar validação a um conjunto de dados de N camadas.
Consulte também
Outros recursos
Trabalhando com conjuntos de dados em aplicativos de N camadas