Compartilhar via


Validação de dados em Datasets

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).

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 DataSet Designer e clique duas vezes na coluna ou tabela para a qual você deseja criar a validação. Esta ação cria automaticamente um ColumnChanging ou RowChanging manipulador de eventos. Para obter mais informações, consulte Como: Validar dados durante alterações de coluna ou Como: Validar dados durante alterações de linha. Para obter um exemplo completo, consulte Demonstra Passo a passo: Adicionando validação a um Dataset..

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 alteração em uma coluna, portanto, gera quatro eventos: primeiro o ColumnChanging e ColumnChanged eventos para a coluna específico que está sendo alterado e o RowChanging e RowChanged de evento. Se estão sendo feitas várias alterações na linha, os eventos serão gerados para cada alteração.

ObservaçãoObservação

O método BeginEdit da linha de dados desativa os eventos RowChanging e RowChanged após cada alteração de coluna individual. 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 restrições ao preencher um 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 em Windows Forms DataGridView Control

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

Conceitos

Dataset Designer