Java - Ayuda cargar combobox con base de datos sql

   
Vista:
Imágen de perfil de Mike

Ayuda cargar combobox con base de datos sql

Publicado por Mike (14 intervenciones) el 10/05/2015 02:25:37
Hola y muy buenas noches, tardes o días segun donde se encuentren les comento mi caso quisiera saber como poder cargar un combobox con informacion de una entidad de una base de datos pero que me los ordene alfabeticamente pero que si selecciono cualquier elemento me tome el id del elemento que seleccione, les digo esto porque he probado de hacerlo de dos formas las cuales son las siguientes:

1) De esta forma, me carga el combobox con los datos y me lo ordena alfabeticamente pero cuando selecciono un item no me toma el id del item
void cargarcombogenero() {

String sql="Select nomgenero,idgenero from genero";


try {
Statement st = cn.createStatement();
ResultSet rs = st.executeQuery(sql);

Genero_pel.removeAllItems();
Genero_pel.addItem("---Selecionar Genero---");
while(rs.next())
{
Genero_pel.addItem(rs.getString("nomgenero"));
}

} catch (SQLException ex) {
Logger.getLogger(users.class.getName()).log(Level.SEVERE, null, ex);
}

}

combo

2) DE esta forma me carga el combobox en el orden en que se encuentran los datos de la tabla, me toma el id pero no me lo organiza albafeticamente

void cargarcombogenero() {

String sql="Select nomgenero,idgenero from genero ORDER BY idgenero ASC";


try {
Statement st = cn.createStatement();
ResultSet rs = st.executeQuery(sql);

Genero_pel.removeAllItems();
Genero_pel.addItem("---Selecionar Genero---");
while(rs.next())
{
Genero_pel.addItem(rs.getString("nomgenero"));
}

} catch (SQLException ex) {
Logger.getLogger(users.class.getName()).log(Level.SEVERE, null, ex);
}

}

combo2

CUALQUIERA DE LOS DOS METODOS los llamo en la siguiente sentencia a la hora de guardar los datos:

String ins="INSERT INTO pelicula (titulo_p,anio_p,idpais,director_p,protagonistas_p,duracion,precio,sinopsis_p,idgenero) VALUES(?,?,?,?,?,?,?,?,?)";


if (Genero_pel.getSelectedIndex()==0) {

JOptionPane.showMessageDialog(null, "Género No Seleccionado", "Error", JOptionPane.ERROR_MESSAGE);

}

if (pais_pel.getSelectedIndex()==0) {

JOptionPane.showMessageDialog(null, "País No Seleccionado", "Error", JOptionPane.ERROR_MESSAGE);

}
if (Genero_pel.getSelectedIndex()>0 && pais_pel.getSelectedIndex()>0) {



try {
PreparedStatement pst = cn.prepareStatement(ins);
pst.setString(1, Titulo_pel.getText());
pst.setString(2, anio_pel.getText());
pst.setString(3, Integer.toString(pais_pel.getSelectedIndex()));
pst.setString(4, dir_pel.getText());
pst.setString(5, prota_pel.getText());
pst.setString(6, dur_pel.getText());
pst.setString(7, pre_pel.getText());
pst.setString(8, sinop_pel.getText());
pst.setString(9, Integer.toString(Genero_pel.getSelectedIndex()));


int n= pst.executeUpdate();
if(n>0)
{



JOptionPane.showMessageDialog(this, "La Pelicula Fue Añadida Satisfactoriamente");

Titulo_pel.setText(null);
anio_pel.setText(null);
dir_pel.setText(null);
prota_pel.setText(null);
dur_pel.setText(null);
pre_pel.setText(null);
sinop_pel.setText(null);
Genero_pel.setSelectedIndex(0);
pais_pel.setSelectedIndex(0);

// Generarnumeracion();
}
else
{
JOptionPane.showMessageDialog(this, "Error");
}


} catch (SQLException ex) {
Logger.getLogger(add_gen.class.getName()).log(Level.SEVERE, null, ex);

JOptionPane.showMessageDialog(null, "Pelicula Ya Existente");
}

}


Un profesor me sugerio cargar el combobox con dos columnas una que cargue el nombre y la otra el id, que lo rodene alfabeticamente que no deje visible la id, yq ue cuenado seleccione un nombre me tome el id y no el getselectitem del combobox, le entiendo la idea pero no tengo la mas minima ide de hacerlo, quisiera saber sus opiniones de antemano muchisimas gracias por el solo hecho de tomarse el tiempo leyendo mi caso
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda cargar combobox con base de datos sql

Publicado por Mario (27 intervenciones) el 13/05/2015 20:30:17
Hola.
No entiendo lo que quieres hacer?
Porque no lo ordernas desde la consulta sql, creo que seria el camino más fácil.
SELECT nomgenero,idgenero FROM genero ORDER BY " idgenero o nomgenero" ASC ("Acendente") o DESC ("Desendente")

Saludos!!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mike

Ayuda cargar combobox con base de datos sql

Publicado por Mike (14 intervenciones) el 16/05/2015 23:34:45
he solucionado ya el inconveniente si alguno desea saber la solucion es esta http://balusoft.net/2011/05/28/obtener-informacin-de-un-jcombobox-respuesta-a-preguntas/ saludos y muchas gracias por vuestra voluntad buen dia
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar