Visão geral sobre validação de dados

Validação de dados é o processo que confirma que os valores são inseridos em objetos de dados de acordo com as restrições do esquema de um DataSet, bem como as regras estabelecidas pelo seu aplicativo.Validar dados antes de enviar atualizações para o banco de dados subjacente é uma boa prática que reduz erros bem como o número potencial de chamadas entre um aplicativo e o banco de dados.Você pode confirmar se os dados que estão sendo gravados para um DataSet são válidos, criando verificações de validação para o próprio DataSet.O DataSet pode verificar se os dados não importando como a atualização estiver sendo executada — se diretamente pelos controles de um formulário, de um componente, ou de alguma outra maneira.Porque o DataSet faz parte do seu aplicativo, ele é um local lógico para criar validações específicas do aplicativo (diferente de criar as mesma verificações na camada final do banco de dados).

Observação:

O local sugerido para adicionar validação em seu aplicativo é o arquivo de classe parcial do conjunto de dados.Em Visual Basic ou Visual C#, abra o Designer de Conjunto de Dados de Conjunto de Dados e clicar duas vezes em coluna ou tabela que você deseja criar a validação para.Essa ação cria automaticamente um manipulador de eventos ColumnChanging ou RowChanging.Para obter mais informações, consulte Como: Validar dados durante alterações de coluna ou Como: Validar dados durante alterações de linha.

Validando Dados

Validação em um DataSet pode ser realizada:

Há vários eventos que são gerados pelo objeto DataTable quando uma alteração está ocorrendo em um registro:

Por padrão, cada alterar em uma coluna, portanto, gera quatro eventos: primeiro o ColumnChanging e ColumnChanged eventos para a coluna específica que está sendo alterado e, em seguida, o RowChanging e RowChanged evento. Se estão sendo feitas várias alterações na linha, os eventos serão gerados para cada alteração.

Observação:

A linha de dados BeginEdit método desliga o RowChanging e RowChanged eventos após cada alterar de coluna individuais. Nesse caso, o evento não é gerado até que o método EndEdit tenha sido chamado, quando os eventos RowChanging e RowChanged são gerados apenas uma vez.Para obter mais informações, consulte Como: Desativar Off Constraints While Filling a DataSet.

O evento que você escolhe depende de quão granular você deseja que a validação seja.Se for importante que você capture um erro imediatamente quando uma coluna é alterada, crie validação usando o evento ColumnChanging.Caso contrário, use o evento RowChanging, que pode resultar na captura de vários erros ao mesmo tempo.Além disso, se seus dados estão estruturados em tal maneira que o valor de uma coluna é validado com base no conteúdo de outra coluna, então você deve executar a validação durante o evento RowChanging.

Quando registros são atualizados, o objeto DataTable gera eventos aos quais você pode responder enquanto alterações estão ocorrendo e depois que as alterações forem feitas.

Se seu aplicativo estiver usando um DataSet tipado, você pode criar manipuladores de eventos altamente tipados.Isso adicionará quatro eventos tipados adicionais para os quais você pode criar manipuladores; dataTableNameRowChanging,dataTableNameRowChanged,dataTableNameRowDeleting, e dataTableNameRowDeleted.Esses manipuladores de eventos tipados passam um argumento que inclui o nome das colunas da tabela que tornam mais fácil para código gravar e ler.

Eventos de atualização de dados

Evento

Descrição

ColumnChanging

O valor em uma coluna está sendo alterado.O evento passa a linha e coluna para você, juntamente com o novo valor proposto.

ColumnChanged

O valor em uma coluna foi alterado.O evento passa a linha e coluna para você, juntamente com o valor proposto.

RowChanging

Alterações feitas em um objeto DataRow estão prestes a serem submetidas de volta ao conjunto de dados.Se você não tiver chamado o método BeginEdit, o evento RowChanging é gerado para cada alteração em uma coluna, imediatamente após o evento ColumnChanging ter sido gerado.Se você chamou BeginEdit antes de fazer alterações, o evento RowChanging é gerado apenas quando você chama o método EndEdit.

O evento passa a linha para você e um valor indicando o tipo de ação (alterar, inserir, e assim por diante) que está sendo executada.

RowChanged

Uma linha foi alterada.O evento passa a linha para você e um valor indicando o tipo de ação (alterar, inserir, e assim por diante) que está sendo executada.

RowDeleting

Uma linha está sendo excluída.O evento passa a linha para você e um valor indicando o tipo de ação (Excluir) que está sendo executada.

RowDeleted

Uma linha foi excluída.O evento passa a linha para você e um valor indicando o tipo de ação (Excluir) que está sendo executada.

Os eventos ColumnChanging, RowChanging, e RowDeleting são gerados durante o processo de atualização.Você pode usar esses eventos para validar dados ou executar outros tipos de processamento.Como as atualizações estão em processo durante esses eventos, você pode cancelar a atualização lançando uma exceção, o que impede que a alteração seja concluída.

Os eventos ColumnChanged, RowChanged, e RowDeleted são eventos de notificação que são gerados quando a atualização tiver sido concluída com êxito.Esses eventos são úteis quando você desejar fazer outra ação com base em uma atualização bem sucedida.

Consulte também

Tarefas

Como: Conectar-se a Dados em um Banco de Dados

Como: Validar dados no Controlarar Exibição em Grade de Dados do Windows Forms

Como: Exibir ícones de erro de validação do formulário com o componente Windows Forms ErrorProvider

Conceitos

Visão geral do TableAdapter

Dataset Designer

Visão geral sobre fontes de dados

Referência

Janela Fontes de Dados

Outros recursos

Validando Dados