UPDATE que não funciona

Estou fazendo o UPDATE em um campo de uma tabela, eu quero que o capo a ser alterado seja igula ao que esteja no JComboBox (jComboBox1), o evento do botão esta certo e funcuiona mas ele não faz a atualização. Estou enviando o codigo, se alguem puder me dar uam luz eu agradeço!!!

   public void actionPerformed(ActionEvent e)
    {
      if (e.getSource()==cadastrar)
      {

        try
          {
           Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
           String cami="jdbc:odbc:conect";
           Connection con;
           con = DriverManager.getConnection(cami,"","");
           Statement stmt;
           stmt = con.createStatement();

           String SQL = "UPDATE area set area ='+areaText.getText()+' where area='jComboBox1.getItem()+'";

           stmt.executeUpdate(SQL);

           stmt.close();
           con.close();
           areaText.setText("");

           }
         catch (Exception ex)
         {}
       }
      }

isso deve resolver

"UPDATE area set area ='"+areaText.getText()+"' where area='"+jComboBox1.getItem()+"'";

mas qual o erro que esta dando ?

Não aparece nehum erro, ele simplesmente não atualiza no banco de dados!!! Se eu alterar a instrução SQL para Insert ele Insere normalmente, o meu erro esta dentro dessa istrução SQL, mas não estou sabendo identificalo.

Estou enviando o codigo todo, tácerto eu sei que esta meio desorganizado e feio mas eu vou ajeitar isso!! :slight_smile:

import javax.swing.JInternalFrame;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import java.io.*;
import javax.swing.*;

public class AreaA extends JInternalFrame implements ItemListener, ActionListener{

   static int openFrameCount = 0;
    static final int xOffset = 40, yOffset = 40;

    public AreaA() {
        super("Alterar Área" + (++openFrameCount),
              true, //resizable
              true, //closable
              false, //maximizable
              true);//iconifiable

        initComponents();
        comboResolvedorRes();
          cadastrar.addActionListener(this);
         jComboBox1.addItemListener(this);
          setSize(360,230);
        setLocation(xOffset*openFrameCount, yOffset*openFrameCount);


    }


    private void initComponents(){//GEN-BEGIN:initComponents



        jPanel3 = new javax.swing.JPanel();
        jPanel5 = new javax.swing.JPanel();
        jPanel1 = new javax.swing.JPanel();
        Area = new javax.swing.JLabel();
        jComboBox1 = new javax.swing.JComboBox();
        jPanel4 = new javax.swing.JPanel();
        cadastrar = new javax.swing.JButton();
        //*
        jPanel6 = new javax.swing.JPanel();
        areaText = new JTextField();
        Area2 = new javax.swing.JLabel();


        //*

        getContentPane().setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.CENTER, 8, 1));

        setTitle("Alterar u00c1rea");
        setPreferredSize(new java.awt.Dimension(308, 260));
        jPanel3.setLayout(new java.awt.GridLayout(4, 3, 2, 0));
        jPanel3.setPreferredSize(new java.awt.Dimension(350, 200));
        jPanel3.setAlignmentY(2.0F);
        jPanel3.setAlignmentX(2.0F);
        jPanel3.setMaximumSize(new java.awt.Dimension(250, 300));

        jPanel5.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.CENTER, 5, 8));

        jPanel3.add(jPanel5);

        jPanel1.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT, 3, 8));

        Area.setText("u00c1rea");
        Area.setFont(new java.awt.Font("Arial", 1, 12));
        Area.setPreferredSize(new java.awt.Dimension(70, 20));
        Area.setAlignmentY(1.0F);
        Area.setAlignmentX(1.0F);
        Area.setMaximumSize(new java.awt.Dimension(70, 16));
        jPanel1.add(Area);

        jPanel1.add(jComboBox1);

        jPanel3.add(jPanel1);

        jPanel4.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.CENTER, 2, 8));

        jPanel4.setPreferredSize(new java.awt.Dimension(150, 50));
        cadastrar.setFont(new java.awt.Font("Arial", 1, 12));
        cadastrar.setText("Consultar");

         //*

        Area2.setText("u00c1rea");
        Area2.setFont(new java.awt.Font("Arial", 1, 12));
        Area2.setPreferredSize(new java.awt.Dimension(70, 20));
        Area2.setAlignmentY(1.0F);
        Area2.setAlignmentX(1.0F);
        Area2.setMaximumSize(new java.awt.Dimension(70, 16));
        Area2.setVisible(false);

        jPanel6.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT, 3, 8));
        jPanel6.add(Area2);
        areaText.setColumns(15);
        areaText.setVisible(false);
        jPanel6.add(areaText);
        jPanel3.add(jPanel6);
        //*
        jPanel4.add(cadastrar);

        jPanel3.add(jPanel4);

        getContentPane().add(jPanel3);

        pack();


    }//GEN-END:initComponents



     public void comboResolvedorRes() {
      try
      {
         //Autenticação do DB
         String url = "jdbc:odbc:conect";
         String usuario = "";
         String senha = "";

         //Chama o drive de comexão JDBC
         Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

         //Cria a conexão
         Connection con;
         con = DriverManager.getConnection(url,usuario,senha);

         //Método para instrução SQL
         Statement st = con.createStatement();
         ResultSet rs = st.executeQuery("select area from area");

         while(rs.next()){
         jComboBox1.addItem(rs.getString("area"));
         }

      //  st.close();
       //  con.close();

         }

         //Tratamento em caso de falha na conexão com DB
         catch (Exception e) {
        // JOptionPane.showMessageDialog(null,"Problemas com o banco de dados!");
         }


  }
  //* inicio



   public void itemStateChanged(ItemEvent e) {
      if( e.getStateChange() == ItemEvent.SELECTED ){
          Area2.setVisible(true);
          areaText.setVisible(true);

           areaText.setText( (String)e.getItem() );

      }
   }



//**fim

       public void actionPerformed(ActionEvent e)
    {
      if (e.getSource()==cadastrar)
      {

        try
          {
           Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
           String cami="jdbc:odbc:conect";
           Connection con;
           con = DriverManager.getConnection(cami,"","");
           Statement stmt;
           stmt = con.createStatement();


           String SQL = "UPDATE area set area ='+areaText.getText()+' where area='+jComboBox1.getItem()+'";

           stmt.executeUpdate(SQL);

           stmt.close();
           con.close();
           areaText.setText("");

           }
         catch (Exception ex)
         {}
       }
      }



    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JLabel Area;
    private javax.swing.JButton cadastrar;
    private javax.swing.JComboBox jComboBox1;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JPanel jPanel5;
    //*
    private javax.swing.JPanel jPanel6;
    private javax.swing.JTextField areaText;
     private javax.swing.JLabel Area2;
    //*
    // End of variables declaration//GEN-END:variables

}

Por acaso o campo “area” é PK?

[quote=“maxguzenski”]isso deve resolver

"UPDATE area set area ='"+areaText.getText()+"' where area='"+jComboBox1.getItem()+"'";

[/quote]
Eu coloque masagoraesta dando erro no getItem.

Descobri aonde eu errei, eu tenho que colcoar getSelectedItem.
Obrigado pela ajuda de todos, sem vc´s eu não teria progredido.

Valeu mesmo!!! :smiley:

Nao seria

getSelectedItem()

ou

getItemAt(int)

:?:

oops… não tinha visto q vc achou… :oops: