Java - Devolver id de un jcombobox java

   
Vista:

Devolver id de un jcombobox java

Publicado por victor perales fabian (10 intervenciones) el 29/09/2015 17:35:39
Agradezco de ante mano su gentil apoyo
tengo dos tablas una se llama pacientes_per y empresa
en pacientes_per (pac_codigo,pac_dnipac_nombres,pac_estado,emp_codigo)
en empresa tengo (emp_codigo,emp_descripcion)


en el jcomboxmterias visualizo un listado de empresas necesito grabar el id del regstro seleccionado en la tabla pacientes_per pero en el campo emp_codigo se graba l descripcion, como puedo hcer para que cundo seleccione un item de un jcombobox se grabe el id y no la descripcion este es mi codigo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
private void btnguardarActionPerformed(java.awt.event.ActionEvent evt) {
            try {
           String sql = "insert into pacientes_per(pac_dni,pac_nombres,emp_codigo,pac_estado)"
                       + "values (?,?,?,?,1)";
 
            PreparedStatement ps = Conn.prepareCall(sql);
 
            ps.setString(1, txtdni.getText());
            ps.setString(2, txtnombres.getText());
            ps.setString(3, cmbempresa.getSelectedIndex());
 
            int n = ps.executeUpdate();
            if (n > 0) {
                JOptionPane.showMessageDialog(null, "Registro Correcto");
 
            }
        } catch (SQLException | HeadlessException e) {
            JOptionPane.showMessageDialog(null, "Error" + e.getMessage());
        }
 
        btnactualizar.setEnabled(false);
 
 
----
private void iniCboMaterias() {
 
          try {
             Conn = BD.geConnection();
             sent = Conn.createStatement();
             String sql = "select emp_codigo,emp_nombres from empresa where emp_estado='1' order by          emp_nombres";
             ResultSet rs = sent.executeQuery(sql);
           modelocboempresa.addElement("[ Elije Empresa ]");
            //Llenamos con datos el JComboBox
            while(rs.next())
                modelocboempresa.addElement(rs.getString("emp_nombres"));
 
        } catch (Exception e) {
        }
 
 
    }
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

Devolver id de un jcombobox java

Publicado por Foraneo (1 intervención) el 29/09/2015 21:03:34
Hola.
Haber si entendí.
Con este método cargas los datos en JComboBox llamado comboxmterias.
1
2
3
4
5
6
7
private void iniCboMaterias() {
          try {
             Conn = BD.geConnection();
             sent = Conn.createStatement();
             .......................................................
            -............................................
    }

Y despues guardas la información:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
private void btnguardarActionPerformed(java.awt.event.ActionEvent evt) {
            try {
           String sql = "insert into pacientes_per(pac_dni,pac_nombres,emp_codigo,pac_estado)"
                       + "values (?,?,?,?,1)";
            PreparedStatement ps = Conn.prepareCall(sql);
            ps.setString(1, txtdni.getText());
            ps.setString(2, txtnombres.getText());
            /*
             *** Pero aquí no veo que estés llamando a comboxmterias.
             ***Creo que te hace falta llamarlo para que obtengas el id
             ***Aquí tienes 4 campos a guardar, pero solo veo tres campos
             ***que estas llenando? 
             */
            ps.setString(3, cmbempresa.getSelectedIndex());
            //Me su pongo que el cuarto es para id que estas comentando.
            ps.setString(4, comboxmaterias.getSelectedIndex());
 
}

Saludos!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Devolver id de un jcombobox java

Publicado por victor perales fabian (10 intervenciones) el 30/09/2015 00:42:29
Saludos, cordiales lo que quiero grabar es el id del registro seleccionado en el jcombobox ve envio imagen
Agrege
ps.setString(3, cmbempresa.getSelectedIndex());

ps.setString(4, comboxmaterias.getSelectedIndex());

y se visualiza un error q esta detallado en la imagen
combox
error
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

Devolver id de un jcombobox java

Publicado por Foraneo (1 intervención) el 30/09/2015 02:48:04
Hola.
Si checas el mensaje de error te esta marcando que es requiere un int, String.
//Donde int es la posición del campo a guardar.
// Y el String es la cadena a guardar en tu base de datos.
ps.setString(int,String);
Te recomiendo que hagas los siguiente en donde deseas ingresar el id.
Creo que en tu base de datos el campo lo tienes como varchar o char.
1
2
int idEmpresa = cmbempresa.getSelectedIndex();//Lo alamacenas en una variable de tipo entera.
String elIDIngresar = String.valueOf(idEmpresa);//Aqui ya obtienes el id de la empresa para ingresarlo a la tabla.
Pero tengo una duda???
¿En tu tabla empresa cuenta con clave principal(ID)? Esta indexada?
Porque es mucho mas fácil ordenarla por los índices(id), ya que si vas a ingresar mas empresas y las ordenas .
Ejemplo:

1
SELECT NOMBREEMP, CALLEEMP, NUMEMP FROM empresaEjemplo WHERE NOMBREEMP = ? ORDER BY NOMBREEMP ASC;
Aquí el problema es que se van ordenar en forma descendente o ascendente según sea el caso por lo cual tu índices van a cambiar y al rato no concordaran con los registros que se hicieron anteriormente.
Bueno, Ojala que te sirva esto.
Saludos!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Devolver id de un jcombobox java

Publicado por victor perales fabian (10 intervenciones) el 30/09/2015 21:43:24
Estimado, las indicaciones q me distes se realizaron con exito, solo hay un inconveniente tengo un problema a grabar el campo id no conicide con el registro de la tabla
mi tabla empresa esta definidad con :
emp_codigo (int)
, emp_nombres, (char)
emp_estado (char)

emp_codigo emp_nombres emp_estao
1 VOLVOSAC 1
2 SAMSUNG 1
3 TOYOTA 0
COMO PUEDO HACER LA CONSULTA PARA Q LOS REGISTROS SE GRABEN CONFORME A SU ID Q PERTENECE
La consulta es q tengo en mi jcombobox es: select emp_codigo,emp_nombres from empresa order by emp_nombres ASC
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

Devolver id de un jcombobox java

Publicado por victor perales fabian (10 intervenciones) el 30/09/2015 23:30:10
Estimado probe con el codigo y no arroja el id q pertenece a la tabla empresa, mejor dicho yo quiero obtener el id, del jcombobox seleccionado y psarlo a un txt.
Este es mi codigo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
private void iniCboEmpresa() {
 
          try {
 
             Conn = BD.geConnection();
             sent = Conn.createStatement();
             String sql = "select emp_codigo,emp_nombres from empresa order by emp_codigo";
 
             ResultSet rs = sent.executeQuery(sql);
           modelocboempresa.addElement("[ Elije Empresa ]");
            //Llenamos con datos el JComboBox
            while(rs.next())
                modelocboempresa.addElement(rs.getString("emp_nombres"));
               this.txtcodemp.setText(rs.getString("emp_codigo"));  (esto n me funcion)
 
 
        } catch (Exception e) {
}
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