servlet部分代码如下:
sql.append("(select PA_PROJECT.project_id where PA_PROJECT.PROJECT_NAME = '");
            
            sql.append(projectName);
            sql.append("') ");
JSP页面上是
 <td align="center" nowrap>
        <select name="projectName" id="projectName" onchange = "selectProjectName()" >
<option selected="true">产品/项目名称</option>
<option value="all">全部</option>
 <% 
 if(list!=null){
 for(int i= 0;i<list.size();i++){
PaProjectPaPromisesSysPersonVO vo = (PaProjectPaPromisesSysPersonVO)list.get(i);
%>
<option value="<%= vo.getProjectName()%>">
<%= vo.getProjectName() %>
</option>
<%}}%>
        </select>
        </td>JS函数:function selectProjectName(){
 
var projectName=document.getElementById("projectName").value; 
if(projectName=="all"){
window.location="<%= contextpath%>/servlet/GetPromisesResultServlet ";
}       
else{
window.location="<%= contextpath%>/servlet/GetPromisesResultServlet?projectName="+projectName;  
}
}
可是  当option得值是中文得时候 明明数据库里有对应的数据 就是查不出来  不知道是sql,JSP 还是JS的问题  有人知道吗?非常感谢!!

解决方案 »

  1.   

    有可能是编码问题。
    你把projectName insert到一个表里面,看看是什么内容。
      

  2.   

    表里我看过了 有数据 projectName所对应的名字就是option中的中文值
      

  3.   

    你的sql语句应该是错的把
    select PA_PROJECT.project_id where PA_PROJECT.PROJECT_NAME = ''
    并没有写是哪个表啊
    尝试把sql语句打印出来到数据库运行下
    看传递的字符是什么
      

  4.   

    发现用select * from PA_PROJECT where PROJECT_NAME ='科研'或者 科研 或者 “科研”在数据库中都查不出数据了 数据库有但是 直接在数据库中运行也运行不起来 好象编码有问题 怎么解决  数据库设计好了 能在select 语句上下工夫吗?
      

  5.   

    不好意思 select * from PA_PROJECT where PROJECT_NAME ='科研' 能执行 但是数据库中有 科研 这条数据 但查出来是0条记录