Qual o erro da inserção?

7 respostas
A

Pessoal, eu tenho o seguinte código que faz a inserção:

public int InsereDados(String command){ int r = 0; try{ r = s.executeUpdate(command); }catch (Exception e){ System.out.println("Erro: " + e); } return r; }

Mas, quando clico no botão para inserir dá erro de NullPointer…
Não sei o que pode estar errado,pois quando mandei imprimir num alert o sql os parametros vem preenchudos, poderiam me ajudar

7 Respostas

fiaux

Veja seu stacktrace, eu chuto que s está null.

julianoeustaquio

Coloque seu codigo mais completo, não da para ver se o Statment “s” esta sendo iniciado ow não.
Coloque tbm o erro de NullPointer… que pode nos ajudar a te ajudar.

Tenho algumas considerações a fezer no seu codigo retornar um int em função de inserção e meio estranho, se executou a insert correto não retorna nada e se der algum erro retorne um throw. Fica mais elegante ao meu ver.

fiaux

É costume em C/C++ e afins retornar um código de retorno sobre a execução do método.

A

Segue o código do meu trabalho.
Está em anexo

fiaux

ACPF1986:
Segue o código do meu trabalho.
Está em anexo

Não cara… poste o código (reduzido, apenas a parte que interessa) e o strack trace. É mais prático.

julianoeustaquio

Tente isto

public int InsereDados(String command){ int r = 0; try{ if(this.CanaldeComando()) r = s.executeUpdate(command); }catch (Exception e){ System.out.println("Erro: " + e); } return r; }

A
public class BD {
 Connection con = null;
 Statement s = null;
 ResultSet r = null;
public int InsereDados(String command){
   int r = 0;
   try{
     r = s.executeUpdate(command);
   }catch (Exception e){
     System.out.println("Erro: " + e);
   }   
   return r;
 }
private class ManipulaBotoes implements ActionListener 
    {
		public void actionPerformed( ActionEvent e )
		{
		    TpCad.Codigo(tCodigo.getText());
			TpCad.Descricao(tDescricao.getText());			
			
			String cmdInsert = "INSERT INTO Tipo_Cadastro (Codigo,Descricao) VALUES (" + TpCad.getCodigo() + ",'" + TpCad.getDescricao() + "');";
		    if (e.getSource() == bInserir)
			{
				try
				{
				  ManipBanco.InsereDados(cmdInsert);
				}
				catch(Exception ex)
				{
					System.out.println("Erro1: " + ex);
				}
				
				//JOptionPane.showMessageDialog(null, cmdInsert);
			}
		 }
	}

Assim está melhor? Espero que sim

Criado 1 de dezembro de 2008
Ultima resposta 1 de dez. de 2008
Respostas 7
Participantes 3