galera estou com um problema no select , segue o codigo :
try{java.sql.ResultSetres=null;PreparedStatementselect;select=connection.prepareStatement("select Valor_Consulta from Medico where ID_Medico = ?");select.setInt(1,IdMedico);res=select.executeQuery();if(res.next()){StringvalorConsulta=res.getString("Valor_Consulta");}}catch(Exceptione){System.out.println("Erro valor consulta");e.printStackTrace();}System.out.println(valorConsulta);returnvalorConsulta;}
O valor da consulta no banco de dados está declarado como nvarchar(13) = R$ 150,00
O problema é que o valorConsulta está retornando "1" ao invés de "R$ 150,00" , já tentei mudar no banco para varchar e char , mas mesmo assim continua retornando o valor "1" , alguém saberia me dizer como faço para retornar o valor respectivo ao banco de dados?
Esse seu código está estranho, teoricamente o escopo de sua variável seria apenas dentro do bloco IF, suponho que vc tenha outra variável na classe com o mesmo nome, tente fazer o seguinte para ver se vai imprimir o valor correto:
Esse seu código está estranho, teoricamente o escopo de sua variável seria apenas dentro do bloco IF, suponho que vc tenha outra variável na classe com o mesmo nome, tente fazer o seguinte para ver se vai imprimir o valor correto:
Oi, obrigado pela resposta , então na verdade eu coloquei " String valorConsulta " só para mostrar que meu atributo valorConsulta é uma string , mas ele está declarado no inicio do código e não dentro do if , fiz oq vc sugeriu e mesmo assim ele continua exibindo valor "1"
drsmachado
dudu795:
Esse seu código está estranho, teoricamente o escopo de sua variável seria apenas dentro do bloco IF, suponho que vc tenha outra variável na classe com o mesmo nome, tente fazer o seguinte para ver se vai imprimir o valor correto:
try{java.sql.ResultSetres=null;PreparedStatementselect;select=connection.prepareStatement("select Valor_Consulta from Medico where ID_Medico = ?");select.setInt(1,IdMedico);res=select.executeQuery();if(res.next()){StringvalorConsulta=res.getString("Valor_Consulta");}}catch(Exceptione){System.out.println("Erro valor consulta");e.printStackTrace();}System.out.println(valorConsulta);returnvalorConsulta;}
1 - Onde está a definição do parâmetro esperado pelo PreparedStatement?
2 - Nunca use
if(rs.next())
Pois o ResultSet é meio "burrinho", afinal, quando você invoca o método next, ele já passa para o próximo elemento, o mais adequado é utilizar
while(rs.next())
Então você pode utilizar todos os elementos que estão no resultSet.
J
JulianAssange
drsmachado:
dudu795:
Esse seu código está estranho, teoricamente o escopo de sua variável seria apenas dentro do bloco IF, suponho que vc tenha outra variável na classe com o mesmo nome, tente fazer o seguinte para ver se vai imprimir o valor correto:
try{java.sql.ResultSetres=null;PreparedStatementselect;select=connection.prepareStatement("select Valor_Consulta from Medico where ID_Medico = ?");select.setInt(1,IdMedico);res=select.executeQuery();if(res.next()){StringvalorConsulta=res.getString("Valor_Consulta");}}catch(Exceptione){System.out.println("Erro valor consulta");e.printStackTrace();}System.out.println(valorConsulta);returnvalorConsulta;}
1 - Onde está a definição do parâmetro esperado pelo PreparedStatement?
2 - Nunca use
if(rs.next())
Pois o ResultSet é meio "burrinho", afinal, quando você invoca o método next, ele já passa para o próximo elemento, o mais adequado é utilizar
while(rs.next())
Então você pode utilizar todos os elementos que estão no resultSet.
Então , ele estava como while(rs.next()) , eu mudei para If somente pra teste , mas sem sucesso =/
drsmachado
Por que não posta o código correto?
J
JulianAssange
drsmachado:
Por que não posta o código correto?
publicclassServicos{StringvalorConsulta;publicStringvalorConsulta(StringId){IdMedico=Integer.parseInt(Id);try{java.sql.ResultSetres=null;PreparedStatementselect;select=connection.prepareStatement("select Valor_Consulta from Medico where ID_Medico = ?");select.setInt(1,IdMedico);res=select.executeQuery();while(res.next()){valorConsulta=res.getString("Valor_Consulta");}}catch(Exceptione){System.out.println("Erro valor consulta");e.printStackTrace();}System.out.println(valorConsulta);returnvalorConsulta;}}