none
Erro na hora de excluir registros relacionados RRS feed

  • Pergunta

  • Olá bom dia.

    Tenho uma tela de Cadastro de Categoria e uma de Sub Categoria.

    Na hora em que eu vou excluir uma categoria na qual esta cadastrado dentro de uma sub categoria

    o programa da erro.

    Como resolver isso?

    Estou fazendo em Camadas.

    Aqui esta a camada DAL da Categoria Excluir

                

    public void Excluir(int codigo)
            {
                try
                {
                    var cmd = new MySqlCommand();
                    cmd.Connection = _conexao.ObjetoConexao;
                    cmd.CommandText = "DELETE FROM categoria WHERE cat_cod = @codigo";
                    cmd.Parameters.AddWithValue("@codigo", codigo);

                    _conexao.Conectar();
                    cmd.ExecuteNonQuery();
                }
                catch (Exception erro)
                {
                    throw new Exception(erro.Message);
                }
                finally
                {
                    _conexao.Desconectar();
                }

            }

    Eu tenho que implementar alguma coisa aqui ou no form da Categoria?

    sexta-feira, 25 de novembro de 2016 12:02

Respostas

  • Olá Diézare,

    O erro provavelmente é porque você tem esse registro vinculado na mesma ou em outra tabela e se estiver com os relacionamentos das tabelas corretos, é isso que te impede de excluir.

    Para tal você tem 2 opções mais simples:

    1) Definir o relacionamento entre as tabelas em questão como "Cascade", ou seja, ao excluir um registro cujo o ID esteja cadastrado em uma outra tabela por meio de uma chave estrangeira, o mesmo também será excluido.
    Exemplo: Uma tabela "Pessoa" contém dois campos (PessoaID, Nome). Outra tabela "Endereço" armazena os endereços de cada pessoa (EnderecoID, PessoaID, Logradouro, etc). Se o relacionamento entre essas tabelas estiver como "Cascade", ao excluir o registro na tabela pessoa, todos os registros correspondentes aquela pessoa na tabela de Endereço serão excluídos também.

    2) Você fazer a exclusão dos registros vinculados antes de excluir o registro na tabela principal. Utilizando o exemplo do item anterior, teria que excluir os endereços de determinada pessoa, afim de eliminar os vínculos com ela e depois excluir o registro na tabela "Pessoa"

    Espero ter ajudado!

    Valeu!


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MSP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    sexta-feira, 25 de novembro de 2016 12:22