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:
Criando sua própria validação específica do aplicativo que pode verificar dados durante alterações em valores em uma coluna de dados individual. Para obter mais informações, consulte Como: Validar dados durante alterações de coluna.
Criando sua própria validação específica do aplicativo que pode verificar dados durante alterações em valores enquanto um linha de dados inteira está sendo alterada. Para obter mais informações, consulte Como: Validar dados durante alterações de linha.
Ao criar chaves, restrições exclusivas, e assim por diante como parte da definição do esquema real do DataSet. Para obter mais informações sobre incorporar validação à definição do esquema, consulte Como: Definir uma coluna de dados como chave primária e Como: Restringir uma coluna de dados para conter valores exclusivos.
Definindo as propriedades do objeto DataColumn, como MaxLength, AllowDBNull e Unique.
Há vários eventos que são gerados pelo objeto DataTable quando uma alteração está ocorrendo em um registro:
Os eventos ColumnChanging e ColumnChanged são gerados durante e após cada alteração em uma coluna individual. O evento ColumnChanging é útil quando você deseja validar alterações em colunas específicas. Informações sobre a alteração proposta são passadas como um argumento para o evento. Para obter mais informações, consulte Como: Validar dados durante alterações de coluna.
Os eventos RowChanging e RowChanged são gerados durante e após qualquer alteração em uma linha. O evento RowChanging é mais geral, no que ele simplesmente indica que uma alteração está ocorrendo em algum lugar na linha; você não sabe qual coluna foi alterada. Para obter mais informações, consulte Como: Validar dados durante alterações de linha.
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çã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 |
---|---|
O valor em uma coluna está sendo alterado. O evento passa a linha e coluna para você, juntamente com o novo valor proposto. |
|
O valor em uma coluna foi alterado. O evento passa a linha e coluna para você, juntamente com o valor proposto. |
|
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. |
|
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. |
|
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. |
|
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