Hi all,
Im new to java, and im working with j lists importing data from sql server.
Thing is that i can import the data from the sql tables, but for some reason it does not refresh properly.
Thing is that when the frame is opened the list is filled with some data, when i add something else, it should only add the new thing, BUT it adds all the pre-existing stuff plus the new row, when trying to delete something, the program (to what already is in the list), all again but without the item i deleted, and when modifying, the program adds all the rows existing in the sql, but with the line i chose to modify, modified.
Another similar problem I have is that i have a combo box, with some data that is imported from the sql, that shouldnt be modified, thing is that when the frame is opened is already filled with data (this is fine), problem is that when i try to add some stuff it automatically adds all the data that is in the sql (i mean i have a b c in the sql table, those abc are passed to the combo, n when i try to add something i have abcabc, when it should only be once)

the code is:

import dolls.Proveedores;
import java.awt.Frame;
import java.awt.event.KeyEvent;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import java.util.*;
import javax.swing.JList;



public class Proveedores extends javax.swing.JFrame
{

    ConexionesBaseDeDatos conexiones = new ConexionesBaseDeDatos();
    Connection cnn;
    ArrayList<Proveedores_clase> listaProveedores = new ArrayList<Proveedores_clase>();

    public Proveedores() {
        initComponents();
    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        popupMenu1 = new java.awt.PopupMenu();
        btnCrearProveedor = new javax.swing.JButton();
        btnModificarProveedor = new javax.swing.JButton();
        btnDesabilitarProveedor = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        cmbProvincias = new javax.swing.JComboBox();
        txtNombreProveedor = new javax.swing.JTextField();
        txtDireccionProveedor = new javax.swing.JTextField();
        txtTelefonoProveedor = new javax.swing.JTextField();
        txtMailProveedor = new javax.swing.JTextField();
        btnAceptar = new javax.swing.JButton();
        btnGuardarCambios = new javax.swing.JButton();
        btnDesabilitar = new javax.swing.JButton();
        btnCancelar = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        listProveedores = new javax.swing.JList();
        jMenuBar1 = new javax.swing.JMenuBar();
        jMenu1 = new javax.swing.JMenu();
        menuProveedores = new javax.swing.JMenuItem();
        menuClientes = new javax.swing.JMenuItem();
        menuModelos = new javax.swing.JMenuItem();
        menuEventos = new javax.swing.JMenuItem();
        menuSubastas = new javax.swing.JMenuItem();
        menuCompras = new javax.swing.JMenuItem();
        menuVentas = new javax.swing.JMenuItem();
        menuColecciones = new javax.swing.JMenuItem();
        menuLineas = new javax.swing.JMenuItem();
        menuProductos = new javax.swing.JMenu();
        menuTiposProductos = new javax.swing.JMenuItem();
        menuInsumos = new javax.swing.JMenu();
        menuTiposInsumos = new javax.swing.JMenuItem();
        jMenu2 = new javax.swing.JMenu();
        jMenuItem12 = new javax.swing.JMenuItem();
        jMenu5 = new javax.swing.JMenu();

        popupMenu1.setLabel("popupMenu1");

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowOpened(java.awt.event.WindowEvent evt) {
                formWindowOpened(evt);
            }
        });
        getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        btnCrearProveedor.setText("Crear Proveedor");
        btnCrearProveedor.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnCrearProveedorActionPerformed(evt);
            }
        });
        getContentPane().add(btnCrearProveedor, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 30, 140, 30));

        btnModificarProveedor.setText("Modificar Proveedor");
        btnModificarProveedor.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                btnModificarProveedorMouseClicked(evt);
            }
        });
        getContentPane().add(btnModificarProveedor, new org.netbeans.lib.awtextra.AbsoluteConstraints(240, 30, 150, 30));

        btnDesabilitarProveedor.setText("Desabilitar Proveedor");
        btnDesabilitarProveedor.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                btnDesabilitarProveedorMouseClicked(evt);
            }
        });
        getContentPane().add(btnDesabilitarProveedor, new org.netbeans.lib.awtextra.AbsoluteConstraints(490, 30, 160, 30));

        jLabel1.setText("Nombre");
        getContentPane().add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(37, 112, -1, -1));

        jLabel2.setText("Dirección");
        getContentPane().add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(31, 150, -1, -1));

        jLabel3.setText("Provincia");
        getContentPane().add(jLabel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(31, 188, -1, -1));

        jLabel4.setText("Telefono");
        getContentPane().add(jLabel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(32, 226, -1, -1));

        jLabel5.setText("Mail");
        getContentPane().add(jLabel5, new org.netbeans.lib.awtextra.AbsoluteConstraints(56, 264, -1, -1));

        getContentPane().add(cmbProvincias, new org.netbeans.lib.awtextra.AbsoluteConstraints(92, 185, 107, -1));
        getContentPane().add(txtNombreProveedor, new org.netbeans.lib.awtextra.AbsoluteConstraints(92, 109, 107, -1));
        getContentPane().add(txtDireccionProveedor, new org.netbeans.lib.awtextra.AbsoluteConstraints(92, 147, 107, -1));

        txtTelefonoProveedor.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                txtTelefonoProveedorKeyTyped(evt);
            }
        });
        getContentPane().add(txtTelefonoProveedor, new org.netbeans.lib.awtextra.AbsoluteConstraints(92, 223, 107, -1));
        getContentPane().add(txtMailProveedor, new org.netbeans.lib.awtextra.AbsoluteConstraints(92, 261, 107, -1));

        btnAceptar.setText("Aceptar");
        btnAceptar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnAceptarActionPerformed(evt);
            }
        });
        getContentPane().add(btnAceptar, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 320, 100, 30));

        btnGuardarCambios.setText("Guardar Cambios");
        btnGuardarCambios.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                btnGuardarCambiosMouseClicked(evt);
            }
        });
        getContentPane().add(btnGuardarCambios, new org.netbeans.lib.awtextra.AbsoluteConstraints(320, 320, 150, 30));

        btnDesabilitar.setText("Desabilitar");
        btnDesabilitar.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                btnDesabilitarMouseClicked(evt);
            }
        });
        getContentPane().add(btnDesabilitar, new org.netbeans.lib.awtextra.AbsoluteConstraints(540, 320, 120, 30));

        btnCancelar.setText("Cancelar");
        btnCancelar.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                btnCancelarMouseClicked(evt);
            }
        });
        getContentPane().add(btnCancelar, new org.netbeans.lib.awtextra.AbsoluteConstraints(130, 320, 120, 30));

        listProveedores.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
        listProveedores.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                listProveedoresMouseClicked(evt);
            }
        });
        jScrollPane1.setViewportView(listProveedores);

        getContentPane().add(jScrollPane1, new org.netbeans.lib.awtextra.AbsoluteConstraints(300, 110, 360, 180));

        jMenu1.setText("File");

        menuProveedores.setText("Proveedores");
        jMenu1.add(menuProveedores);

        menuClientes.setText("Clientes");
        jMenu1.add(menuClientes);

        menuModelos.setText("Modelos");
        jMenu1.add(menuModelos);

        menuEventos.setText("Eventos");
        jMenu1.add(menuEventos);

        menuSubastas.setText("Subastas");
        jMenu1.add(menuSubastas);

        menuCompras.setText("Compras");
        menuCompras.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                menuComprasActionPerformed(evt);
            }
        });
        jMenu1.add(menuCompras);

        menuVentas.setText("Ventas");
        jMenu1.add(menuVentas);

        menuColecciones.setText("Colecciones");
        jMenu1.add(menuColecciones);

        menuLineas.setText("Lineas");
        jMenu1.add(menuLineas);

        menuProductos.setText("Productos");

        menuTiposProductos.setText("Tipos de productos");
        menuProductos.add(menuTiposProductos);

        jMenu1.add(menuProductos);

        menuInsumos.setText("Insumos");

        menuTiposInsumos.setText("Tipos de insumos");
        menuTiposInsumos.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                menuTiposInsumosActionPerformed(evt);
            }
        });
        menuInsumos.add(menuTiposInsumos);

        jMenu1.add(menuInsumos);

        jMenuBar1.add(jMenu1);

        jMenu2.setText("Ayuda");

        jMenuItem12.setText("Acerca de...");
        jMenu2.add(jMenuItem12);

        jMenuBar1.add(jMenu2);

        jMenu5.setText("Salir");
        jMenuBar1.add(jMenu5);

        setJMenuBar(jMenuBar1);

        pack();
    }// </editor-fold>                        



    private void btnCrearProveedorActionPerformed(java.awt.event.ActionEvent evt) {                                                  
        habilitacionesbtnCrearProveedor();
    }                                                 


    private void btnCancelarMouseClicked(java.awt.event.MouseEvent evt) {                                         
        limpiarCampos();
        habilitacionesbasicas();
        deshabilitartodo();
    }                                        


    private void btnAceptarActionPerformed(java.awt.event.ActionEvent evt) {                                           
        guardarProveedorEnBD();
        mostrarConsulta();
    }                                          


    private void btnModificarProveedorMouseClicked(java.awt.event.MouseEvent evt) {                                                   
        habilitacionesBtnModificarProveedor();
    }                                                  


    private void txtTelefonoProveedorKeyTyped(java.awt.event.KeyEvent evt) {                                              
         switch (evt.getKeyChar())
         {
             case '0':case '1':
             case '2':case '3':
             case '4':case '5':
             case '6':case '7':
             case '8':case '9': case '-':
                txtTelefonoProveedor.requestFocusInWindow();
                break;
             default:
                 evt.setKeyChar((char)KeyEvent.VK_CLEAR);
         }
    }                                             


    private void listProveedoresMouseClicked(java.awt.event.MouseEvent evt) {                                             
        traeDatos();

        cmbProvincias.setEnabled(true);
        txtDireccionProveedor.setEnabled(true);
        txtMailProveedor.setEnabled(true);
        txtNombreProveedor.setEnabled(true);
        txtTelefonoProveedor.setEnabled(true);
    }                                            


    private void btnGuardarCambiosMouseClicked(java.awt.event.MouseEvent evt) {                                               
        modificarProveedor();
        habilitacionesbasicas();
        desabilitarbotonesinferiores();
        limpiarCampos();
        deshabilitarcampos();
    }                                              


    private void formWindowOpened(java.awt.event.WindowEvent evt) {                                  
        deshabilitartodo();

        if (conexiones.conectaralabase())
        {

            cargarComboProvincias();
            mostrarConsulta();
        }
    }                                 


    private void btnDesabilitarMouseClicked(java.awt.event.MouseEvent evt) {                                            
        eliminarProveedor();

        listProveedores.setEnabled(true);
        cmbProvincias.setEnabled(false);
        txtMailProveedor.setEnabled(false);
        txtNombreProveedor.setEnabled(false);
        txtTelefonoProveedor.setEnabled(false);
        txtDireccionProveedor.setEnabled(false);
    }                                           

    private void btnDesabilitarProveedorMouseClicked(java.awt.event.MouseEvent evt) {                                                     
        habilitacionesbtnDesabilitarProveedor();
    }                                                    


    private void menuTiposInsumosActionPerformed(java.awt.event.ActionEvent evt) {                                                 
       tipos_insumos.main();
       this.setVisible(false);
    }                                                

    
    private void menuComprasActionPerformed(java.awt.event.ActionEvent evt) {                                            
        Compras.main();
        this.setVisible(false);
    }                                           


    public static void main() {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Proveedores().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JButton btnAceptar;
    private javax.swing.JButton btnCancelar;
    private javax.swing.JButton btnCrearProveedor;
    private javax.swing.JButton btnDesabilitar;
    private javax.swing.JButton btnDesabilitarProveedor;
    private javax.swing.JButton btnGuardarCambios;
    private javax.swing.JButton btnModificarProveedor;
    private javax.swing.JComboBox cmbProvincias;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JMenu jMenu1;
    private javax.swing.JMenu jMenu2;
    private javax.swing.JMenu jMenu5;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JMenuItem jMenuItem12;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JList listProveedores;
    private javax.swing.JMenuItem menuClientes;
    private javax.swing.JMenuItem menuColecciones;
    private javax.swing.JMenuItem menuCompras;
    private javax.swing.JMenuItem menuEventos;
    private javax.swing.JMenu menuInsumos;
    private javax.swing.JMenuItem menuLineas;
    private javax.swing.JMenuItem menuModelos;
    private javax.swing.JMenu menuProductos;
    private javax.swing.JMenuItem menuProveedores;
    private javax.swing.JMenuItem menuSubastas;
    private javax.swing.JMenuItem menuTiposInsumos;
    private javax.swing.JMenuItem menuTiposProductos;
    private javax.swing.JMenuItem menuVentas;
    private java.awt.PopupMenu popupMenu1;
    private javax.swing.JTextField txtDireccionProveedor;
    private javax.swing.JTextField txtMailProveedor;
    private javax.swing.JTextField txtNombreProveedor;
    private javax.swing.JTextField txtTelefonoProveedor;
    // End of variables declaration                   



/*
-------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------
*/

    private void habilitacionesbasicas()
    {
        btnCrearProveedor.setEnabled(true);
        btnModificarProveedor.setEnabled(true);
        btnDesabilitarProveedor.setEnabled(true);
    }

    
    private void deshabilitartodo()
    {
        btnAceptar.setEnabled(false);
        btnCancelar.setEnabled(false);
        cmbProvincias.setEnabled(false);
        btnDesabilitar.setEnabled(false);
        listProveedores.setEnabled(false);
        txtMailProveedor.setEnabled(false);
        btnGuardarCambios.setEnabled(false);
        txtNombreProveedor.setEnabled(false);
        txtTelefonoProveedor.setEnabled(false);
        txtDireccionProveedor.setEnabled(false);
    }

    private void desabilitarbotonesinferiores()
    {
        btnAceptar.setEnabled(false);
        btnCancelar.setEnabled(false);
        btnGuardarCambios.setEnabled(false);
        btnDesabilitar.setEnabled(false);
    }


    private void habilitacionesbtnCrearProveedor()
    {
        btnAceptar.setEnabled(true);
        btnCancelar.setEnabled(true);
        cmbProvincias.setEnabled(true);
        txtMailProveedor.setEnabled(true);
        txtNombreProveedor.setEnabled(true);
        txtTelefonoProveedor.setEnabled(true);
        txtDireccionProveedor.setEnabled(true);
    }


    private void deshabilitarcampos()
    {
        cmbProvincias.setEnabled(false);
        txtMailProveedor.setEnabled(false);
        txtNombreProveedor.setEnabled(false);
        txtTelefonoProveedor.setEnabled(false);
        txtDireccionProveedor.setEnabled(false);
        listProveedores.setEnabled(false);
    }

    
    private void habilitacionesbtnDesabilitarProveedor()
    {
        btnAceptar.setEnabled(false);
        btnCancelar.setEnabled(true);
        cmbProvincias.setEnabled(false);
        txtMailProveedor.setEnabled(false);
        btnGuardarCambios.setEnabled(false);
        txtNombreProveedor.setEnabled(false);
        txtTelefonoProveedor.setEnabled(false);
        txtDireccionProveedor.setEnabled(false);
        btnCrearProveedor.setEnabled(false);
        listProveedores.setEnabled(true);
        btnDesabilitar.setEnabled(true);
    }


    private void habilitacionesBtnModificarProveedor()
    {
        btnAceptar.setEnabled(false);
        btnCancelar.setEnabled(true);
        btnCrearProveedor.setEnabled(false);
        btnDesabilitarProveedor.setEnabled(false);
        btnDesabilitarProveedor.setEnabled(false);
        btnGuardarCambios.setEnabled(true);
        cmbProvincias.setEnabled(false);
        listProveedores.setEnabled(true);
        txtDireccionProveedor.setEnabled(false);
        txtMailProveedor.setEnabled(false);
        txtNombreProveedor.setEnabled(false);
        txtTelefonoProveedor.setEnabled(false);
    }


    private void limpiarCampos()
    {
        cmbProvincias.setSelectedIndex(-1);
        txtDireccionProveedor.setText("");
        txtMailProveedor.setText("");
        txtNombreProveedor.setText("");
        txtTelefonoProveedor.setText("");
    }

/*
-------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------
*/

    private void cargarComboProvincias()
    {
        Statement sql;
        ResultSet datos;
        boolean seguir;
        Provincias_clase provinciaActual;

       try
       {
           sql = conexiones.cnn.createStatement();
           datos = sql.executeQuery("SELECT * FROM Provincias WHERE id_provincia IS NOT NULL ORDER BY nombre_provincia");
           seguir = datos.next();

           while (seguir)
           {
               provinciaActual = new Provincias_clase();
               provinciaActual.setNombre_provincia(datos.getString(2));

               provinciaActual.toString();
               cmbProvincias.addItem(provinciaActual);
               seguir = datos.next();
           }
       }
       catch (Exception e)
       {
           JOptionPane.showMessageDialog(null,e.getMessage() + "  cargarComboProvincias()");
           e.printStackTrace();
       }
    }


    private Proveedores_clase datosProveedor()
    {
        Proveedores_clase proveedorMod = new Proveedores_clase();

        proveedorMod.setDireccion_proveedor(txtDireccionProveedor.getText());
        proveedorMod.setMail_proveedor(txtMailProveedor.getText());
        proveedorMod.setNombre_proveedor(txtNombreProveedor.getText());
        proveedorMod.setProvincia(getProvincia(cmbProvincias.getSelectedItem().toString()));
        proveedorMod.setTelefono_proveedor(txtTelefonoProveedor.getText());

        return proveedorMod;
    }

    
    private void eliminarProveedor()
    {
        Proveedores_clase provElim = new Proveedores_clase();

        provElim.setId_proveedor(listaProveedores.get(listProveedores.getSelectedIndex()).getId_proveedor());
        provElim.setDireccion_proveedor(txtDireccionProveedor.getText());
        provElim.setMail_proveedor(txtMailProveedor.getText());
        provElim.setNombre_proveedor(txtNombreProveedor.getText());
        provElim.setProvincia(getProvincia(cmbProvincias.getSelectedItem().toString()));
        provElim.setTelefono_proveedor(txtTelefonoProveedor.getText());

        desabilitarproveedor(provElim);

        listProveedores.removeAll();
        listProveedores.setListData(listaProveedores.toArray());
    }




    public boolean insertarProveedor(Proveedores_clase proveedorActual)
    {
        Statement sql;
        ResultSet datos;

        try
        {
            sql = conexiones.cnn.createStatement();
            String query;

            query = "INSERT INTO proveedores(nombre_proveedor,direccion_proveedor,provincia_proveedor,telefono_proveedor,mail_proveedor,habilitado) VALUES ( '" + proveedorActual.getNombre_proveedor() + "','" + proveedorActual.getDireccion_proveedor() + "'," + proveedorActual.getProvincia().getId_provincia() + ",'" + proveedorActual.getTelefono_proveedor() + "','" + proveedorActual.getMail_proveedor() + "','" + 1 + "')";

            sql.executeUpdate(query);

            JOptionPane.showMessageDialog(null, "SE CARGARON LOS DATOS CORRECTAMENTE" );
            return true;

        }
        catch (Exception e)
        {
            JOptionPane.showMessageDialog (null,e.getMessage() + "ERROR EN insertarProveedor(Proveedores_clase proveedorActual") ;
            e.printStackTrace();
            return false;
        }
    }




    public boolean mostrarConsulta()
    {
        Proveedores_clase proveedorActual;
        boolean seguir;
        ResultSet rs;
        Statement comand;

        listProveedores.removeAll();
        try
        {
            conexiones.conectaralabase();
            comand = conexiones.cnn.createStatement();
            rs = comand.executeQuery("SELECT id_proveedor,nombre_proveedor,direccion_proveedor,provincia_proveedor,telefono_proveedor,mail_proveedor FROM proveedores WHERE habilitado = 1 ORDER BY nombre_proveedor");
//            listProveedores.removeAll();
            seguir = rs.next();

            while (seguir)
            {
                proveedorActual = new Proveedores_clase();

                proveedorActual.setId_proveedor(rs.getInt(1));
                proveedorActual.setNombre_proveedor(rs.getString(2));
                proveedorActual.setDireccion_proveedor(rs.getString(3));
                proveedorActual.setProvincia(dameProvincia(rs.getInt(4)));
                proveedorActual.setTelefono_proveedor(rs.getString(5));
                proveedorActual.setMail_proveedor(rs.getString(6));

                listaProveedores.add(proveedorActual);
                seguir = rs.next();
            }
            listProveedores.setListData(listaProveedores.toArray());
            return true;
        }
        catch (Exception e)
        {
            JOptionPane.showMessageDialog (null,e.getMessage());
            return false;
        }
    }


    private void updateProveedor(Proveedores_clase pMod)
    {
        Statement sql;
        ResultSet datos;

        try
        {
            sql = conexiones.cnn.createStatement();
            String consulta;

            consulta="UPDATE proveedores SET nombre_proveedor='"+ pMod.getNombre_proveedor() +"', direccion_proveedor='"+ pMod.getDireccion_proveedor() +"', provincia_proveedor='"+ getProvincia(pMod.getProvincia().getNombre_provincia()).getId_provincia() +"',mail_proveedor='"+ pMod.getMail_proveedor() +"',habilitado='1' WHERE ((proveedores.[id_proveedor])= " + pMod.getId_proveedor() + ")";

            sql.executeUpdate (consulta.toString());
            JOptionPane.showMessageDialog(null, "SE MODIFICARON LOS DATOS CORRECTAMENTE");

        }
        catch (Exception e)
        {
            JOptionPane.showMessageDialog (null,e.getMessage());
        }
    }

    private void modificarProveedor()
    {
        Proveedores_clase proveedorMod = new Proveedores_clase();

        proveedorMod.setId_proveedor(listaProveedores.get(listProveedores.getSelectedIndex()).getId_proveedor());
        proveedorMod.setDireccion_proveedor(txtDireccionProveedor.getText());
        proveedorMod.setMail_proveedor(txtMailProveedor.getText());
        proveedorMod.setNombre_proveedor(txtNombreProveedor.getText());
        proveedorMod.setProvincia(getProvincia(cmbProvincias.getSelectedItem().toString()));
        proveedorMod.setTelefono_proveedor(txtTelefonoProveedor.getText());

        updateProveedor(proveedorMod);

        mostrarConsulta();
    }


/*
-------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------
*/
    public boolean validartxtDireccionProveedorVacio()
    {
        if (txtDireccionProveedor.getText().trim().equals(""))
        {
            JOptionPane.showMessageDialog(null,"Ingresar la direccion");
            txtDireccionProveedor.requestFocus();
            return true;
        }
        else
            return false;
    }


    public boolean validartxtMailProveedorVacio()
    {
        if (txtMailProveedor.getText().trim().equals(""))
        {
            JOptionPane.showMessageDialog(null,"Ingresar el mail");
            txtMailProveedor.requestFocus();
            return true;
        }
        else
            return false;
    }


    public boolean validartxtNombreProveedorVacio()
    {
        if (txtNombreProveedor.getText().trim().equals(""))
        {
            JOptionPane.showMessageDialog(null,"Ingresar el nombre");
            txtNombreProveedor.requestFocus();
            return true;
        }
        else
            return false;
    }


    public boolean validartxtTelefonoProveedorVacio()
    {
        if (txtTelefonoProveedor.getText().trim().equals(""))
        {
            JOptionPane.showMessageDialog(null,"Ingresar el telefono");
            txtNombreProveedor.requestFocus();
            return true;
        }
        else
            return false;
    }


    public boolean validarcmbProvinciasProveedorVacio()
    {
        if (cmbProvincias.getSelectedIndex()==-1)
        {
            JOptionPane.showMessageDialog(null,"Seleccionar una provincia");
            cmbProvincias.requestFocus();
            return true;
        }
        else
            return false;
    }


    public void guardarProveedorEnBD()
    {
        if ((!(validartxtDireccionProveedorVacio())) && (!(validartxtMailProveedorVacio())) && (!(validartxtNombreProveedorVacio())) && (!(validartxtTelefonoProveedorVacio())) && (!(validarcmbProvinciasProveedorVacio())))
        {
            Proveedores_clase proveedor = null;
            proveedor = datosProveedor();

            insertarProveedor(proveedor);
            deshabilitartodo();
            limpiarCampos();
        }
    }


    public void desabilitarproveedor(Proveedores_clase pDes)
    {
        Statement sql;
        ResultSet datos;

        try
        {
            sql = conexiones.cnn.createStatement();
            String consulta;

            consulta = "UPDATE proveedores SET habilitado=0 WHERE (((proveedores.[id_proveedor])= " + pDes.getId_proveedor() + "))";

            sql.executeUpdate (consulta.toString());
            JOptionPane.showMessageDialog(null, "Se deshabilito correctamente el proveedor");

            mostrarConsulta();
        }
        catch (Exception e)
        {
            JOptionPane.showMessageDialog (null,e.getMessage() + "ERROR EN -public void desabilitarproveedor(Proveedores_clase pDes)-");
        }
    }


/*
-------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------
*/

    private Provincias_clase getProvincia(String Descripcion)
    {
        Statement sql;
        ResultSet datos;
        boolean seguir;
        Provincias_clase provinciaActual;

        if (!conexiones.conectaralabase())
        {
            return null;
        }
            try
            {
                sql = conexiones.cnn.createStatement();

                datos = sql.executeQuery("SELECT id_provincia,nombre_provincia FROM provincias WHERE id_provincia IS NOT NULL AND nombre_provincia = '"+ Descripcion + "'");

                datos.next();

                provinciaActual = new Provincias_clase();
                provinciaActual.setId_provincia(datos.getShort(1));
                provinciaActual.setNombre_provincia(datos.getString(2));
                return provinciaActual;

            }
            catch (Exception e)
            {
                JOptionPane.showMessageDialog (null,e.getMessage()+"error en -private Provincias_clase getProvincia(String Descripcion)-");
                return null;
            }
    }

    public Provincias_clase dameProvincia(Integer id)
    {
        Provincias_clase provincia = new Provincias_clase();
        Statement comando;
        boolean seguir;
        ResultSet rs;

        try
        {
            comando = conexiones.cnn.createStatement();
            rs = comando.executeQuery("SELECT id_provincia,nombre_provincia FROM provincias WHERE id_provincia ="+ id);
            seguir = rs.next();

            while (seguir)
            {
                provincia.setId_provincia(rs.getByte(1));
                provincia.setNombre_provincia(rs.getString(2));
                seguir = rs.next();
            }
            return provincia;
        }
        catch(Exception e)
        {
                JOptionPane.showMessageDialog (null,e.getMessage()+"error en -public Provincias_clase DameProvincia(Integer id)-");
            return null;
        }
    }




/*
-------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------
*/

    private void traeDatos()
    {
        Proveedores_clase proveedorSelect;

        if (listProveedores.getSelectedIndex() != -1)
        {
            proveedorSelect = new Proveedores_clase();

            proveedorSelect = listaProveedores.get(listProveedores.getSelectedIndex());

            txtDireccionProveedor.setText(proveedorSelect.getDireccion_proveedor());
            txtMailProveedor.setText(proveedorSelect.getMail_proveedor());
            txtNombreProveedor.setText(proveedorSelect.getNombre_proveedor());
            txtTelefonoProveedor.setText(proveedorSelect.getTelefono_proveedor());
            
            Provincias_clase provincia;

            for (int indice = 0; indice <= cmbProvincias.getItemCount()-1; indice++)
            {
                provincia = new Provincias_clase();
                provincia = (Provincias_clase) cmbProvincias.getItemAt(indice);
                if(provincia.getNombre_provincia().equalsIgnoreCase(proveedorSelect.getProvincia().getNombre_provincia()))
                    cmbProvincias.setSelectedIndex(indice);
            }
        }
        else
        {
           JOptionPane.showMessageDialog(null,"Seleccionar algun proveedor");
        }
    }    
}

I'm sure there are many of us here who would like to help you, but its really hard to debug 900 lines of completely uncommented code with variable and method names in a language that few of us speak.
Unless you can create a smaller simpler version that displays the same problem, the only help I can give is to advise you to add a whole load of print statements around the relevant areas so you can see where the values are differing from what you
expect.
Good luck anyway.

sorry for that :$

the procedures that may be causing the errors are:

both of these procedures are for creating a new record

private void btnAceptarActionPerformed(java.awt.event.ActionEvent evt) {                                           
        guardarProveedorEnBD();
        mostrarConsulta();
}  

    public boolean insertarProveedor(Proveedores_clase proveedorActual)
    {
        Statement sql;
        ResultSet datos;

        try
        {
            sql = conexiones.cnn.createStatement();
            String query;

            query = "INSERT INTO proveedores(nombre_proveedor,direccion_proveedor,provincia_proveedor,telefono_proveedor,mail_proveedor,habilitado) VALUES ( '" + proveedorActual.getNombre_proveedor() + "','" + proveedorActual.getDireccion_proveedor() + "'," + proveedorActual.getProvincia().getId_provincia() + ",'" + proveedorActual.getTelefono_proveedor() + "','" + proveedorActual.getMail_proveedor() + "','" + 1 + "')";

            sql.executeUpdate(query);

            JOptionPane.showMessageDialog(null, "SE CARGARON LOS DATOS CORRECTAMENTE" );
            return true;

        }
        catch (Exception e)
        {
            JOptionPane.showMessageDialog (null,e.getMessage() + "ERROR EN insertarProveedor(Proveedores_clase proveedorActual") ;
            e.printStackTrace();
            return false;
        }
    }

this procedure gets the data from the database

public boolean mostrarConsulta()
    {
        Proveedores_clase proveedorActual;
        boolean seguir;
        ResultSet rs;
        Statement comand;

        listProveedores.removeAll();
        try
        {
            conexiones.conectaralabase();
            comand = conexiones.cnn.createStatement();
            rs = comand.executeQuery("SELECT id_proveedor,nombre_proveedor,direccion_proveedor,provincia_proveedor,telefono_proveedor,mail_proveedor FROM proveedores WHERE habilitado = 1 ORDER BY nombre_proveedor");
//            listProveedores.removeAll();
            seguir = rs.next();

            while (seguir)
            {
                proveedorActual = new Proveedores_clase();

                proveedorActual.setId_proveedor(rs.getInt(1));
                proveedorActual.setNombre_proveedor(rs.getString(2));
                proveedorActual.setDireccion_proveedor(rs.getString(3));
                proveedorActual.setProvincia(dameProvincia(rs.getInt(4)));
                proveedorActual.setTelefono_proveedor(rs.getString(5));
                proveedorActual.setMail_proveedor(rs.getString(6));

                listaProveedores.add(proveedorActual);
                seguir = rs.next();
            }
            listProveedores.setListData(listaProveedores.toArray());
            return true;
        }
        catch (Exception e)
        {
            JOptionPane.showMessageDialog (null,e.getMessage());
            return false;
        }
    }

the code for updating a record is

private void updateProveedor(Proveedores_clase pMod)
    {
        Statement sql;
        ResultSet datos;

        try
        {
            sql = conexiones.cnn.createStatement();
            String consulta;

            consulta="UPDATE proveedores SET nombre_proveedor='"+ pMod.getNombre_proveedor() +"', direccion_proveedor='"+ pMod.getDireccion_proveedor() +"', provincia_proveedor='"+ getProvincia(pMod.getProvincia().getNombre_provincia()).getId_provincia() +"',mail_proveedor='"+ pMod.getMail_proveedor() +"',habilitado='1' WHERE ((proveedores.[id_proveedor])= " + pMod.getId_proveedor() + ")";

            sql.executeUpdate (consulta.toString());
            JOptionPane.showMessageDialog(null, "SE MODIFICARON LOS DATOS CORRECTAMENTE");

        }
        catch (Exception e)
        {
            JOptionPane.showMessageDialog (null,e.getMessage());
        }
    }

    private void modificarProveedor()
    {
        Proveedores_clase proveedorMod = new Proveedores_clase();

        proveedorMod.setId_proveedor(listaProveedores.get(listProveedores.getSelectedIndex()).getId_proveedor());
        proveedorMod.setDireccion_proveedor(txtDireccionProveedor.getText());
        proveedorMod.setMail_proveedor(txtMailProveedor.getText());
        proveedorMod.setNombre_proveedor(txtNombreProveedor.getText());
        proveedorMod.setProvincia(getProvincia(cmbProvincias.getSelectedItem().toString()));
        proveedorMod.setTelefono_proveedor(txtTelefonoProveedor.getText());

        updateProveedor(proveedorMod);

        mostrarConsulta();
    }

and its called from here

private void btnGuardarCambiosMouseClicked(java.awt.event.MouseEvent evt) {                                               
        modificarProveedor();
}

and to delete (or disable) a record the code is

public void desabilitarproveedor(Proveedores_clase pDes)
{
        Statement sql;
        ResultSet datos;

        try
        {
            sql = conexiones.cnn.createStatement();
            String consulta;

            consulta = "UPDATE proveedores SET habilitado=0 WHERE (((proveedores.[id_proveedor])= " + pDes.getId_proveedor() + "))";

            sql.executeUpdate (consulta.toString());
            JOptionPane.showMessageDialog(null, "Se deshabilito correctamente el proveedor");

            mostrarConsulta();
        }
        catch (Exception e)
        {
            JOptionPane.showMessageDialog (null,e.getMessage() + "ERROR EN -public void desabilitarproveedor(Proveedores_clase pDes)-");
        }
    }

and this is called from here:

private void btnDesabilitarMouseClicked(java.awt.event.MouseEvent evt) {                                            
        eliminarProveedor();

        listProveedores.setEnabled(false);
        cmbProvincias.setEnabled(false);
        txtMailProveedor.setEnabled(false);
        txtNombreProveedor.setEnabled(false);
        txtTelefonoProveedor.setEnabled(false);
        txtDireccionProveedor.setEnabled(false);
        btnDesabilitar.setEnabled(false);
        btnCancelar.setEnabled(false);

        habilitacionesbasicas();
    }

The code to fill the combo is:

private void cargarComboProvincias()
    {
        Statement sql;
        ResultSet datos;
        boolean seguir;
        Provincias_clase provinciaActual;

       try
       {
           sql = conexiones.cnn.createStatement();
           datos = sql.executeQuery("SELECT * FROM Provincias WHERE id_provincia IS NOT NULL ORDER BY nombre_provincia");
           seguir = datos.next();

           while (seguir)
           {
               provinciaActual = new Provincias_clase();
               provinciaActual.setNombre_provincia(datos.getString(2));

               provinciaActual.toString();
               cmbProvincias.addItem(provinciaActual);
               seguir = datos.next();
           }
       }
       catch (Exception e)
       {
           JOptionPane.showMessageDialog(null,e.getMessage() + "  cargarComboProvincias()");
           e.printStackTrace();
       }
    }

hope its better this way :)

thanks!

maybe the problem is here: // listProveedores.removeAll(); why is that commented out?
It looks to me like you do need to remove the old data before adding the latest data. What happens if you do a listProveedores.removeAll(); before any updates?

Edited 5 Years Ago by JamesCherrill: n/a

you have to implemnts DefaultListModel, that best way how to do it, there you can add/remove, change particular Item(s)

nobody going to debug code for you, but my quick helicopter view

->

split your question to the 5-8 separated questions, because there are lots of mess that can generated un-expected output to the GUI,

Edited 5 Years Ago by mKorbel: n/a

This question has already been answered. Start a new discussion instead.