[MySQLIntegrityConstraintViolationException:]

Pessoal to com um problema, vejam isso eu tenho uma tela e nela eu efetuo um cadastro! ela cadastra normal mas o meu combobox ela ta dando erro, ele puxa o combobox da tabela mas quando altero algum registro ele da esse problema quando eu salvo

run:
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails (`testing`.`cliente`, CONSTRAINT `CarNome` FOREIGN KEY (`cartao`) REFERENCES `cartoes` (`nome`))
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
        at com.mysql.jdbc.Util.getInstance(Util.java:381)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1016)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:957)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3376)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3308)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1837)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1961)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2543)
        at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1737)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2022)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1940)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1925)
        at br.com.Papelaria.Cliente.ClienteControl.alterarClienteF(ClienteControl.java:71)

tento adicionar ele assim

cliente.setCartao(jcbF_Cartao.getSelectedItem().toString().trim());

algueim sabe o que posso fazer para resolver esse problema? obrigado!

a resposta é simples…

vc está tomando pau de FK do banco…

o correto seria vc construir o objeto cartão e passar no seu cliente.setCartao().

e não passar o texto como vc está mostrando

cara era isso mesmo era problema com meu FK no banco tinha dado um bug la e nao tinha corrigido corretamente muito obrigado!