[Dúvida] Dados duplicados

3 respostas
Gabriel_Tom

Fala galera, é o seguinte:
Tenho um jFrame onde tenho dois campos ( cpf e cnpj ), o usuário só pode digitar um dos dois, quando a pessoa é fisica ou jurídica.
No banco de dados estou declarando os dois campos como index UNIQUE.

Quando vou salvar o segundo contato de pessoa física por exemplo, ele informa que o cnpj está duplicado. E quando vou salvar o segundo contato de pessoa jurídica dá erro falando que o campo cpf esta duplicado. Tentei colocar o campo no bd como NULL e nã está aceitando.

Estou usando o MySQL.
Valeu!!

3 Respostas

thiagobernardo_si

Pow cara coloca o código ai para gente ver com esta? assim pode ser mil coisas…

mgarcia

posta também o ddl da tabela… está parecendo problema de conceito de constraints

Gabriel_Tom
private void btnIncluirActionPerformed(java.awt.event.ActionEvent evt) {                                           
        if (txtNome.getText().equals("") || jftfCpf.getText().equals("") || jftfTelefone.getText().equals("") || jftfCep.getText().equals("") || txtEndereco.getText().equals("") || txtBairro.getText().equals("") || txtCidade.getText().equals("")) {
            JOptionPane.showMessageDialog(null, "Digite nos campos obrigatórios!");
            txtNome.requestFocus();
            return;
        }

        boolean cpfvalidado = cpf.validacpf(jftfCpf.getText()); //validacpf
        boolean cnpjvalidado = cnpj.validaCnpj(jftfCnpj.getText()); //validacnpj

        if (rbFisica.isSelected()) {
            if (cpfvalidado) {
                try {
                    bancoDados.Comando = bancoDados.Conexao.prepareStatement("INSERT INTO cadcliente(nomecliente,razaosocial,nomecontato,cpf,insest,telefone,fax,cep,endereco,bairro,cidade,estado,referencia,homepage,email,cnpj) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
                    bancoDados.Comando.setString(1, txtNome.getText());
                    bancoDados.Comando.setString(2, txtRazaoSocial.getText());
                    bancoDados.Comando.setString(3, txtNomeContato.getText());
                    bancoDados.Comando.setString(4, jftfCpf.getText());
                    bancoDados.Comando.setString(5, txtInsEst.getText());
                    bancoDados.Comando.setString(6, jftfTelefone.getText());
                    bancoDados.Comando.setString(7, jftfFax.getText());
                    bancoDados.Comando.setString(8, jftfCep.getText());
                    bancoDados.Comando.setString(9, txtEndereco.getText());
                    bancoDados.Comando.setString(10, txtBairro.getText());
                    bancoDados.Comando.setString(11, txtCidade.getText());
                    bancoDados.Comando.setString(12, jComboBoxEstado.getSelectedItem().toString());
                    bancoDados.Comando.setString(13, txtReferencia.getText());
                    bancoDados.Comando.setString(14, txtHomePage.getText());
                    bancoDados.Comando.setString(15, txtEmail.getText());
                    bancoDados.Comando.setString(16, jftfCnpj.getText());

                    bancoDados.Comando.executeUpdate();

                    JOptionPane.showMessageDialog(null, "Cadastrado com sucesso!");

                } catch (Exception e) {
                    JOptionPane.showMessageDialog(null, "Erro: " + e.getMessage(), "Erro", JOptionPane.ERROR_MESSAGE);
                }

            } else {

                JOptionPane.showMessageDialog(null, "Cpf inválido!");
                jftfCpf.setText("");
                jftfCpf.requestFocus();
            }
        } else if (rbJuridica.isSelected()) {
            if (cnpjvalidado) {
               try {
                    bancoDados.Comando = bancoDados.Conexao.prepareStatement("INSERT INTO cadcliente(nomecliente,razaosocial,nomecontato,cpf,insest,telefone,fax,cep,endereco,bairro,cidade,estado,referencia,homepage,email,cnpj) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
                    bancoDados.Comando.setString(1, txtNome.getText());
                    bancoDados.Comando.setString(2, txtRazaoSocial.getText());
                    bancoDados.Comando.setString(3, txtNomeContato.getText());
                    bancoDados.Comando.setString(4, jftfCpf.getText());
                    bancoDados.Comando.setString(5, txtInsEst.getText());
                    bancoDados.Comando.setString(6, jftfTelefone.getText());
                    bancoDados.Comando.setString(7, jftfFax.getText());
                    bancoDados.Comando.setString(8, jftfCep.getText());
                    bancoDados.Comando.setString(9, txtEndereco.getText());
                    bancoDados.Comando.setString(10, txtBairro.getText());
                    bancoDados.Comando.setString(11, txtCidade.getText());
                    bancoDados.Comando.setString(12, jComboBoxEstado.getSelectedItem().toString());
                    bancoDados.Comando.setString(13, txtReferencia.getText());
                    bancoDados.Comando.setString(14, txtHomePage.getText());
                    bancoDados.Comando.setString(15, txtEmail.getText());
                    bancoDados.Comando.setString(16, jftfCnpj.getText());
                    
                    bancoDados.Comando.executeUpdate();

                    JOptionPane.showMessageDialog(null, "Cadastrado com sucesso!");

                } catch (Exception e) {
                    JOptionPane.showMessageDialog(null, "Erro: " + e.getMessage(), "Erro", JOptionPane.ERROR_MESSAGE);
                }

            } else {

                JOptionPane.showMessageDialog(null, "Cnpj inválido!");
                jftfCnpj.setText("");
                jftfCnpj.requestFocus();
            }
        }
    }
Criado 27 de abril de 2010
Ultima resposta 27 de abr. de 2010
Respostas 3
Participantes 3