下面的代码出现运行时错误,注意红色部分,在查询到数据后,错误提示说我数据库中的字段值(如第一条记录“user_name”字段为mao,错误提示为“mao”未定义。这是什么回事啊?是不是和数据库的字符编码有关啊,如何改正?请高手指教!!!
<%@ page contentType="text/html; charset=gbk" language="java" import="java.sql.*,java.util.*"%> 
<jsp:useBean id="joyrisingbean" scope="page"  class="db.lxtconndb"/> 
<!--DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"--> 
<html> 
<head> 
<!--meta http-equiv="Content-Type" content="text/html; charset=gbk" /--> 
<title>搜索纪念馆 </title> 
<style type="text/css"> 
<!-- 
.sssy { 
font-size: 12px; 
font-style: normal; } 
--> 
</style> 
</head> <body bgcolor="#F0F8FF" onLoad="initIDselect()"> 
<form id="form1"  name="form1"  method="post" action="b.jsp" > 
    <span class="sssy">站内纪念馆搜索: 
    <select name="ssxx"  onchange="onselectxx()"  id="ssxx"  size="1"> 
    <option value="按纪念馆名" >按纪念馆名 </option> 
    <option value="按纪念馆号"selected>按纪念馆号 </option> 
    <option value="按建馆人名">按建馆人名 </option> 
    <option value="按用户编号">按用户编号 </option> 
    <option value="按省份">按省份 </option> 
    <option value="按纪念园区名">按纪念园区名 </option> 
    <option value="按纪念园区号">按纪念园区号 </option> 
    </select> 
    <select name="flxx" size="1"  id="flxx"> 
    </select> 
    <input type="submit" name="sumbit" id="sumbit" value="GO>>>" accesskey="s" />  
  </span> </form> 
<% 
String sql = "SELECT * from  jnr"; 
ResultSet rs = joyrisingbean.executeQuery(sql); %> 
<script language="javascript"> 
function initIDselect(){ 
var flxx=document.getElementById('flxx'); 
<%rs.beforeFirst(); 
while(rs.next()){ 
%> 
flxx.options.add(new Option( <%=rs.getInt("jng_id")%>,0)); 
<%} 
%> 

function onselectxx(){ var flxx=document.getElementById('flxx'); 
flxx.options.length=0; //清除原有选项; 
var ssxx=document.getElementById('ssxx'); 
var ssxxselectedtext=ssxx.options[ssxx.selectedIndex].text; <% rs.beforeFirst(); 
while(rs.next()){ %> switch (ssxxselectedtext){ 
case'按纪念馆号': 
flxx.options.add(new Option( <%=rs.getInt("jng_id")%>,0)); 
break; 
case '按建馆人名' : 
flxx.options.add(new Option( <%=rs.getString("user_name")%>,0)); 
break; 
case '按纪念馆名': 
flxx.options.add(new Option( <%=rs.getString("reg_gm")%>,0)); 
break; case '按纪念园区名': 
flxx.options.add(new Option( <%=rs.getString("reg_yqm")%>,0)); 
break; 
case '按纪念园区号': 
flxx.options.add(new Option( <%=rs.getInt("yq_id")%>,0)); 
case '按省份': 
flxx.options.add(new Option( <%=rs.getString("jnr_city")%>,0)); 
break; 
default: 
}//end switch 
<%} 
//end while(rs.next()) 
//rs.close(); 
//rs=null; %> 
}//end funtion onselectxx() 
</script> 
</body> 
</html> 

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【joyrising】截止到2008-07-27 23:22:29的历史汇总数据(不包括此帖):
    发帖的总数量:3                        发帖的总分数:60                       每贴平均分数:20                       
    回帖的总数量:4                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:1                        结贴的总分数:20                       
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:2                        未结的总分数:40                       
    结贴的百分比:33.33 %               结分的百分比:33.33 %                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    楼主该结一些帖子了
      

  2.   


    switch (ssxxselectedtext){ 
    case'按纪念馆号': 
    LZ的switch写的肯定有问题
    switch中只能放整形或者能自动转型成整形的变量
    '按纪念馆号'是什么?
    编译过不了的
      

  3.   

    case '按纪念馆号': 
    只有c# 里才可以这样写,
      

  4.   

    都是一群菜鸟啊!
    <%=rs.getString("user_name")%>,少了一个引号,不用麻烦大家了!不过我找得好辛苦啊!