[RESOLVIDO]Erro ao excluir dados JTable

4 respostas
Micke

Boa Tarde Pessoal!!

Gostaria de saber se o código a baixo esta correto, ele faz a exclusao dos dados da tabela, para isso acontecer a pessoa deve selecionar a linha e excluir… segue o código:

public boolean excluirDados()
{
    ListSelectionModel rowSM = tabela.getSelectionModel();
    if(rowSM.isSelectionEmpty())
    {
        JOptionPane.showMessageDialog(null, "Nenhum item selecionado!");
    }
    else
    {
        try
        {
            int selectedRow = rowSM.getMinSelectionIndex();
            String iten = tabela.getValueAt(selectedRow, 0).toString();
            stm = con.getStatement();
            stm.executeUpdate("delete from funcionariosecs where NomeFuncionarioECS = "+iten);
        }
        catch(SQLException e)
        {
            e.printStackTrace();
            return false;
        }
    }
    return true;
}

Esta retornando o seguinte erro:

java.sql.SQLException: Unknown column 'Ana' in 'where clause'

4 Respostas

arec_metafora

Erro cláaaaaaassico!

o nome é uma string! para isso, tem q estar entre aspas simples…

A string SQL fica assim: "… where = ’ + nome + " ’ ";

Entendeu??

Micke

Ave Maria, essa foi de mata, assassinei o java agora :D!!!

Valeu pela ajuda arec_metafora!!!

Abraços!!

arec_metafora

Micke, para não cometer mais esse tipo de erro, ao invés de usar o Statement, use o PreparedStatement.
Um exemplo do PreparedStatement…

Connection con = ....... // A sua conexão com o BD

PreparedStatement pSt;
String query = "DELETE FROM func WHERE nome = ?";
pSt = con.prepareStatement(query);
pSt.setString(1,funcionario.getNome());
pSt.executeUpdate();
pSt.close();
con.close();

Esse é bem melhor!! Para entender, é fácil. Sai add ‘?’ aonde for parâmetro de consulta. Depois vc dá aqueles set, com o índice do parâmetro e o tipo (setString, setInt, setBoolean, …)

Simples, prático e rápido!

Até Mais.

Micke

Realmente fica mais facil!!!

Vlw pela dica e pela ajuda!!!

T++++ 8)

Criado 18 de fevereiro de 2008
Ultima resposta 18 de fev. de 2008
Respostas 4
Participantes 2