.
Tente esse código. Onde você carrega o select, ponha no value, o valor do esp_codigo.
<label>Nome da Espécie.:
<select name="lista_especie" id="lista_especie">
<%
String sql = "select * from especie order by esp_nome";
rs = st.executeQuery(sql);
while(rs.next())
{
System.out.print(request.getParameter("especie"));
%>
<option selected="selected" value="<%=rs.getString("esp_codigo")%>"><%=rs.getString("esp_nome")%></option>
<%
}
%>
</select>
continua com o mesmo erro
na hora do insert dai eu deixa como lista_especie?
mudei para esp_codigo e tbm não deu certo
Só precisa mudar aquela parte do código que falei. Tente agora.
então, fiz isso ae
aquela parte da lista la mudei e coloquei no value o esp_codigo
igual vc mandou
mais continuou com o mesmo erro, ou acho que entendi errado então
Espera so um instante que vou fazer aqui e ver se dá certo.
Testei com Mysql, mas o resultado é o mesmo. A única mudança que fiz além do Banco foi aquele que falei pra vc. De pô o campo value no Select. Eis o código. Lembre-se é preciso ter algum valor na Tabela espécie.
[code]
<%@page contentType=“text/html” pageEncoding=“ISO-8859-1” import=“java.sql.*”%>
Cadastro de Raças
<% Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/test","root","admin");
Statement st = con.createStatement();
ResultSet rs;
if (request.getParameter("acao") == null)
{
%>
Código.:
Nome da Raça.:
Nome da Espécie.: <% String sql = "select * from especie order by esp_nome"; rs = st.executeQuery(sql); while(rs.next()) { System.out.print(request.getParameter("especie")); %> "><%=rs.getString("esp_nome")%>
<%
}
%>
</select>
</label>
<label></label>
<% } else {
String sqlinsertrac = "insert into raca (rac_nome, rac_especie) values ('"+request.getParameter("tf_raca")+
"','"+request.getParameter("lista_especie")+"')";
st.executeUpdate(sqlinsertrac);
response.sendRedirect("index.jsp");
}%>
<p> </p>
[/code]
Abraços!
puts, fiz as mesmas mudanças lá de somente o campo value, na tabela especie tem especie cadastrada na raça tbm tem raça,
porem qndo eu clico em gravar ele abenda a tela e gera aquela mensagem de erro…
tem alguma ideia do que pode ser?
Tipo assim, o combo box ele traz legal com os valores da especie, mais na hora de gravar é que dá o erro
Bom, pelo que vi seu código tá ok. Tem como vc fazer uma engenharia reversa de suas tabelas? Posta ai por favor. Igual como vc fez no banco que está sendo usado. To aguardando.
.
Você já tentou cadastrar uma raça pela query browser do próprio banco?
Por Favor, posta pra mim o código após renderização da página jsp.
segue
HTTP Status 500 -
--------------------------------------------------------------------------------
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: An exception occurred processing JSP page /cadRaca.jsp at line 77
74: String sqlinsertrac = "insert into raca (rac_nome, rac_especie) values ('"+request.getParameter("tf_raca")+
75: "','"+request.getParameter("lista_especie")+"')";
76:
77: st.executeUpdate(sqlinsertrac);
78: response.sendRedirect("raca.jsp");
79:
80:
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:524)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:417)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
javax.servlet.ServletException: org.postgresql.util.PSQLException: ERRO: coluna "rac_especie" da relação "raca" não existe
Posição: 29
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:850)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
org.apache.jsp.cadRaca_jsp._jspService(cadRaca_jsp.java:158)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
org.postgresql.util.PSQLException: ERRO: coluna "rac_especie" da relação "raca" não existe
Posição: 29
org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2062)
org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1795)
org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:479)
org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:353)
org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:299)
org.apache.jsp.cadRaca_jsp._jspService(cadRaca_jsp.java:142)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.14 logs.
--------------------------------------------------------------------------------
A página antes de você submeter o form. Onde você carregar o select dos dados de espécies.
.
Só mais uma coisa, quando você entra na página de cadastro, a página renderizado em html para visualização no browser. Preciso que você visualize o código, copie e cole aqui.
.
No insert do banco de dados vc ta tentando passar uma String como valor para um campo inteiro. Tire aquelas aspas e tente novamente. Estou aguardando…
Assim?
String sqlinsertrac = "insert into raca (rac_nome, rac_especie) values ('"+request.getParameter("tf_raca")+
"','"+request.getParameter(lista_especie)+"')";
st.executeUpdate(sqlinsertrac);
response.sendRedirect("raca.jsp");
se for ainda assim continua o erro
Original:
[code]String sqlinsertrac = “insert into raca (rac_nome, rac_especie) values (’”+request.getParameter(“tf_raca”)+
“’,’”+request.getParameter(“lista_especie”)+"’)";
st.executeUpdate(sqlinsertrac);
response.sendRedirect("raca.jsp");
[/code]
Modificado:
String sqlinsertrac = "insert into raca (rac_nome, rac_especie) values ('"+request.getParameter("tf_raca")+
"',"+request.getParameter("lista_especie")+")"; // quando você passar o valor '' para o banco ele entende como string e dará erro
st.executeUpdate(sqlinsertrac);
response.sendRedirect("raca.jsp");
Tente ai.