Ajuda iniciante

7 respostas
ken420
try

{

String sqlinsert =insert into Biblioteca (Livro) values (’”+

tf_Livro.getText()+"’,’"+

con_cadastro.statement.executeUpdate(sqlinsert);

JOptionPane.showMessageDialog(null, Gravaçao feita com sucesso)

estou fazendo um processo para acessa meu banco de dados na 2 linha crio a string com nome de sqlinsert e atribuo o valor a ela mas na linha 5 em executeUpdate(sqlinsert); fik sublinhado e do lado na lampada fala isso variable sqlinsert might not have been initialized. algueim pode me da uma dica? fikei onteim ate 3 da manha pra tentar resolve isso e nada ;~~

7 Respostas

hesenger

Você não terminou a declaração da variavel.

Se vc prestar atenção na instrução que atribui o valor pra sqlinsert ela não tem ;.

Finalize ela antes de usar.

marcosharbs

primeiro que nem o amigo acima disse vc não terminou a linha de declaração da variavel.
segundo cuide com suas aspas vc está formatando essa string de insert de forma errada, ele nao vai inserir
terceiro não se aconselha a usar insert dessa maniera de uma olhada nesse codigo:

try{
		//con = Conexao.obterConexao();	
		PreparedStatement pst = con.prepareStatement(
				"insert into item_pedido values (s_itempedido.nextval,?,?,?,?)");
		pst.setInt(1, itempedido.getQuantidade());
		pst.setDouble(2, itempedido.getPrecoUnitario());
		pst.setString(3, itempedido.getItem().getCodigo());
		pst.setLong(4, generic.getNumeroPedido());

		pst.execute();
		}catch(SQLException e){
			//con.rollback();
			throw e;
		}
	}

vc pode notar que ele usa um PreparedStatement, dai vc pode passar parametros, cada ? é um parametro, dessa maneira vc evita o sql inject.

vlww!

ken420

CONTINUO COM PROBLEMAS ESSE COMANDO EU DEI NO ACTION PERFORMED DO MEU BOTAO CADASTRO AI EM BAIXO ESTA O CODIGO INTEIRO MAS AGORA N TEM AQUELE ERRO SQL MAS ELE N SALVA NO BANCO DE DADOS

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

try

{

String sqlinsert =insert into Biblioteca (Livro) values (’”+

tf_Livro.getText();

con_cadastro.statement.executeUpdate(sqlinsert);

JOptionPane.showMessageDialog(null, Gravaçao feita com sucesso);
//atualizando o ResultSet
    con_cadastro.resultset = con_cadastro.statement.executeQuery("select * from Biblioteca");
    con_cadastro.resultset.first();
    mostra_dados();
   
}
catch(SQLException erro)

{

JOptionPane.showMessageDialog(null, Erro ao tentar gravar o registro);

}

}
marcosharbs

tenat botar esse trecho no lugar ali do sqlinsert:

String sqlinsert ="insert into Biblioteca (Livro) values ('"+ 
tf_Livro.getText()+"')";

vc boto aspas simples no começo mas não fexou ela e nem o parenteses, lembrando que esta forma não é a recomendada, o certo seria vc usar algo como:

PreparedStatement pst = con.prepareStatement(   
                "insert into item_pedido values (s_itempedido.nextval,?,?,?,?)");   
        pst.setInt(1, itempedido.getQuantidade());   
        pst.setDouble(2, itempedido.getPrecoUnitario());   
        pst.setString(3, itempedido.getItem().getCodigo());   
        pst.setLong(4, generic.getNumeroPedido());

assim vc usa um PreparedStatement e passa parametros, é mais seguro.

ken420
realmente tinha esquecido de fechar, fechei tudo ok compilou porem quando clico no botao para salvar ele da isso

catch(SQLException erro)

{

JOptionPane.showMessageDialog(null, Erro ao tentar gravar o registro);

}

ERRO AO TENTAR GRAVAR O REGISTRO ;/

ken420

agora quando tento conectar ao banco de dados ele da um erro e fala q o estado do cursor ta invalido [Microsoft][ODBC Driver Manager] Estado de cursor invalido
http://img528.imageshack.us/my.php?image=bdjz4.jpg
ai esta a foto do banco de dados q criei no access para treinar eu tenhu 3 campo de texto no meu programa e quero cadastrar esses 3 camposno meu banco de dados so q no access n posso dexa em branco tenhu q inserir algo no primeiro campo ex LIVRO + ta dando esse erro ao tentar gravar o registro quando tento gravar =[

ken420

UP

Criado 6 de novembro de 2008
Ultima resposta 13 de nov. de 2008
Respostas 7
Participantes 3