Banco de Dados - Problemas com inserção

3 respostas
Lei

Colegas,
o código abaixo não funciona e não sei a razão…estou querendo inserir no banco.
Não dá nenhum erro, ele apenas não salva no banco, nem dá aviso de “Dados inseridos”.
O que há de errado?

package ssgb;

import java.sql.<em>;

import java.awt.</em>;

import javax.swing.*;

/**
*

  • @author Lei
    */
    public class Obras extends javax.swing.JFrame {

    /** Creates new form Obras */
    
    public Obras() {
    
    initComponents();
    
    try{
    
    Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);
    
    Connection conne = DriverManager.getConnection(jdbc:odbc:SSGB,"","");
    
    Statement stmc=conne.createStatement();
    
    ResultSet rsa = stmc.executeQuery (SELECT Nome from Autor);
    
    while (rsa.next())
         {   
             jComboBox1.addItem(rsa.getString("Nome"));
         
         }
         jComboBox1.updateUI();
         }
    
     catch(SQLException e) {
             JOptionPane.showMessageDialog(this,"Erro" +e.getMessage()); 
         }
         catch(ClassNotFoundException e) {
             JOptionPane.showMessageDialog(this,"Problemas de localização do driver!");
    
    }
    
    try{
    
    Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
    
    Connection conne = DriverManager.getConnection(“jdbc:odbc:SSGB,"","");
    
    Statement stmc=conne.createStatement();
    
    ResultSet rss = stmc.executeQuery (“SELECT Nome from Autor”);
    
    while (rss.next())
         {   
             jComboBox2.addItem(rss.getString("Nome"));
         
         }
         jComboBox2.updateUI();
         }
    
     catch(SQLException e) {
             JOptionPane.showMessageDialog(this,"Erro" +e.getMessage()); 
         }
         catch(ClassNotFoundException e) {
             JOptionPane.showMessageDialog(this,"Problemas de localização do driver!");
    
    }
    
    try{
    
    Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
    
    Connection conne = DriverManager.getConnection(“jdbc:odbc:SSGB,"","");
    
    Statement stmc=conne.createStatement();
    
    ResultSet rsf = stmc.executeQuery (“SELECT Nome from Autor”);
    
    while (rsf.next())
         {   
             jComboBox3.addItem(rsf.getString("Nome"));
         
         }
         jComboBox3.updateUI();
         }
    
     catch(SQLException e) {
             JOptionPane.showMessageDialog(this,"Erro" +e.getMessage()); 
         }
         catch(ClassNotFoundException e) {
             JOptionPane.showMessageDialog(this,"Problemas de localização do driver!");
    
    }
    
    try{
    
    Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
    
    Connection conne = DriverManager.getConnection(“jdbc:odbc:SSGB,"","");
    
    Statement stmc=conne.createStatement();
    
    ResultSet rse = stmc.executeQuery (“SELECT Nome from Editora”);
    
    while (rse.next())
         {   
             jComboBox6.addItem(rse.getString("Nome"));
         
         }
         jComboBox6.updateUI();
         }
    
     catch(SQLException e) {
             JOptionPane.showMessageDialog(this,"Erro" +e.getMessage()); 
         }
         catch(ClassNotFoundException e) {
             JOptionPane.showMessageDialog(this,"Problemas de localização do driver!");
    

    }
    }

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

try{

Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);

Connection cont = DriverManager.getConnection(“jdbc:odbc:SSGB,"","");

Statement stmm=cont.createStatement();
String Titulo=jTextField3.getText();
        String Autor1=jComboBox1.getToolTipText();
        String Autor2=jComboBox2.getToolTipText();
        String Autor3=jComboBox3.getToolTipText();
        String Localizacao=jComboBox4.getToolTipText();
        String Editora=jComboBox6.getToolTipText();
        int Edicao=Integer.parseInt(jTextField4.getText());
        int Ano=Integer.parseInt(jTextField5.getText());
        int Numero=Integer.parseInt(jTextField6.getText());
        int Volume=Integer.parseInt(jTextField7.getText());
        int Codigo=Integer.parseInt(jTextField9.getText());
        int DataPublicacao=Integer.parseInt(jTextField8.getText());
        ButtonModel Tipo=buttonGroup1.getSelection();
        
        stmm.executeUpdate("insert into Obra(Titulo,Autor1,Autor2,Autor3,Localizacao,Editora,Edicao,Ano,Numero,Volume,Codigo,DataPublicacao,Tipo) values ('"+Titulo+"','"+Autor1+"','"+Autor2+"','"+Autor3+"','"+Localizacao+"','"+Editora+"','"+Edicao+"','"+Ano+"','"+Numero+"','"+Volume+"','"+Codigo+"','"+DataPublicacao+"','"+Tipo+"')");
        JOptionPane.showMessageDialog(this, "Dados inseridos com sucesso!");
        cont.close();
        
        jTextField3.setText("");
        jComboBox1.setToolTipText(Autor1);
        jComboBox2.setToolTipText(Autor2);
        jComboBox3.setToolTipText(Autor3);
        jComboBox4.setToolTipText(Localizacao);
        jComboBox6.setToolTipText(Editora);
        jTextField4.setText("");
        jTextField5.setText("");
        jTextField6.setText("");
        jTextField7.setText("");
        jTextField9.setText("");
        jTextField8.setText("");
        buttonGroup1.setSelected(Tipo, rootPaneCheckingEnabled);
        
    } catch (SQLException e) {
        JOptionPane.showMessageDialog(this, "Erro"+e.getMessage());
    } catch (ClassNotFoundException e) {
        JOptionPane.showMessageDialog(this, "Problemas de localização do driver!");
    }
}

Grata!

3 Respostas

P
try{
Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);

Connection conne = DriverManager.getConnection(jdbc:odbc:SSGB,"","");

Statement stmc=conne.createStatement();

ResultSet rsa = stmc.executeQuery (SELECT Nome from Autor);

if(rsa.next){

int tam = 0;

if (this.rs.last()) {
            tam = rs.getRow();
            rs.beforeFirst();
        }

 String dados [] = new String[tam];
        
        int cont = 0;
        while (rs.next()) {
            dados[cont] = rsa.getString("nome");
            cont++;
        }

jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(dados));
jComboBox1.updateUI();

}

}

catch(SQLException e) {

JOptionPane.showMessageDialog(this,Erro +e.getMessage());

}
catch(ClassNotFoundException e) {

JOptionPane.showMessageDialog(this,“Problemas de localização do driver!);

}

Use model para popular tabela e combo

israel.fonseca

Não “compilei” mentalmente todo o código pq tá meio ruim de ler ele. Utilize a tag “code” para facilitar nossa leitura. ;D

Em fim, quanto ao código eu acredito que a raiz do mal esteja aqui:

DriverManager.getConnection("jdbc:odbc:SSGB","","");

Digo, imagino eu que você deveria estar tentando acessar o o banco localmente não? Então provavelmente deveria ficar algo como:

jdbc:odbc://localhost/nome_do_banco

Caso seja remotamente, mt provavelmente deveria ter um IP… Ou ainda, não tem nada a ver e vossa pessoa simplesmente omitiu o IP por razões de segurança(não é bom mostrar IP públicos na net, em fim.) o que me levaria a crer q EU não sei o que está acontecendo. xD

Bom, não tema, eventualmente alguém mais inteligente que eu aparecera para salvar o dia(ou a noite).

Boa sorte! o>

Lei

Ei Israel!

Na verdade eu não omiti nenhum IP não…todas as telas estão fazendo o cadastro normalmente, porém essa tela não quer saber de trabalhar hoje.
O meu banco é Access e até agora tem sido bom o resultado.

Patrick, muito obrigado pela ajuda!!

Criado 20 de março de 2008
Ultima resposta 20 de mar. de 2008
Respostas 3
Participantes 3