roger_rf 11 de mai. de 2011
Se o modelo de dados do seu JComboBox for um DefaultComboBoxModel (e muito provavelmente é), basta usar o método removeElement() ou removeElementAt():
diegodtsa 11 de mai. de 2011
[quote=roger_rf]Se o modelo de dados do seu JComboBox for um DefaultComboBoxModel (e muito provavelmente é), basta usar o método removeElement() ou removeElementAt():
No indice do obejto a excluir quero excluir qual estiver selecionado pelo mouse!!!
roger_rf 11 de mai. de 2011
diegodtsa 11 de mai. de 2011
fiz desse jeito!!!
private void bt_excluirActionPerformed ( java . awt . event . ActionEvent evt ) {
try {
Class.forName("com.mysql.jdbc.Driver") ;
Connection conn ;
conn = DriverManager.getConnection(" jdbc : mysql :// 127.0.0.1 / funcionario "," root "," 11111 ");
String query = " DELETE FROM dados_curso WHERE curso_cadastrado = ( ? ) " ;
PreparedStatement stmt = conn.prepareStatement(query) ;
((DefaultComboBoxModel) cb_curso.getModel()).removeElementAt(cb_curso.getSelectedIndex()) ;
stmt.executeUpdate() ;
stmt.close() ;
conn.close() ;
} catch ( ClassNotFoundException classNotFound ) {
classNotFound.printStackTrace() ;
System.exit(1) ;
} catch ( SQLException sqlException ) {
sqlException.printStackTrace() ;
System.exit(1) ;
}
}
Mas deu erro de SQL, segue o erro!!!
java .sql .SQLException : No value specified for parameter 1
at com .mysql .jdbc .SQLError .createSQLException ( SQLError .java :1073 )
roger_rf 11 de mai. de 2011
Este erro não está relacionado à exclusão do item na ComboBox. Você se esqueceu de informar ao PreparedStatement o código do curso que queria excluir:
stmt.setObject(1, codigoDoCursoAExcluir);
stmt.executeUpdate();
diegodtsa 11 de mai. de 2011
private void bt_excluirActionPerformed ( java . awt . event . ActionEvent evt ) {
try {
Class.forName("com.mysql.jdbc.Driver") ;
Connection conn ;
conn = DriverManager.getConnection(" jdbc : mysql :// 127.0.0.1 / funcionario "," root "," 11111 ");
String query = " DELETE FROM dados_curso WHERE curso_cadastrado = ( ? ) " ;
PreparedStatement stmt = conn.prepareStatement(query) ;
((DefaultComboBoxModel) cb_curso.getModel()).removeElementAt(cb_curso.getSelectedIndex()) ;
stmt.setObject(1, cb_curso) ;
stmt.executeUpdate() ;
stmt.close() ;
conn.close() ;
} catch ( ClassNotFoundException classNotFound ) {
classNotFound.printStackTrace() ;
System.exit(1) ;
} catch ( SQLException sqlException ) {
sqlException.printStackTrace() ;
System.exit(1) ;
}
}
Valeu cara Funcionou!!! Fiz desse jeito!!!
diegodtsa 11 de mai. de 2011
Opa ainda não esta excluindo!!!
ELe exclui na hora da execução, mas depois que eu fecho o aplicativo e volto a exeutar novamente, ele não exclui do banco!!!
roger_rf 11 de mai. de 2011
Cada elemento da ComboBox não corresponde a um curso? Você deveria fazer assim:
stmt.setObject(1, [chave primária do curso selecionado na ComboBox]);
Da maneira que você está fazendo, você passando A PRÓPRIA COMBOBOX para stmt.setObject(), não a chave primária do elemento a excluir.
diegodtsa 11 de mai. de 2011
Pronto agora sim
private void bt_excluirActionPerformed ( java . awt . event . ActionEvent evt ) {
try {
Class.forName("com.mysql.jdbc.Driver") ;
Connection conn ;
conn = DriverManager.getConnection(" jdbc : mysql :// 127.0.0.1 / funcionario "," root "," 11111 ");
String query = " DELETE FROM dados_curso WHERE curso_cadastrado = ( ? ) " ;
PreparedStatement stmt = conn.prepareStatement(query) ;
stmt.setString(1, (String) cb_curso.getSelectedItem()) ;
stmt.executeUpdate() ;
atualizar_cb() ;
stmt.close() ;
conn.close() ;
} catch ( ClassNotFoundException classNotFound ) {
classNotFound.printStackTrace() ;
System.exit(1) ;
} catch ( SQLException sqlException ) {
sqlException.printStackTrace() ;
System.exit(1) ;
}
}