如何获取所有下拉值

时间:2012-10-29 13:29:16

标签: oracle jsp jdbc

我有一个案例,我必须得到所有下拉元素的总和。我能够单独实现它。以下是用于个人选择的代码。

<%@page contentType="text/html" pageEncoding="UTF-8"%>  
<!DOCTYPE html>  
<html>  
<head>  
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
    <title>JSP Page</title>  
</head>  
<body><form name="Reports" method="post" action="Reports.jsp"><table><tr><td>  
    Select user:<select name="user" id="user">  
        <option value="">Select User</option>  
        <option value="Rakesh">Rakesh</option>  
        <option value="Hari">Hari</option>  
    </select></td><td>  
    Select Type:<select name="type" id="type">  
        <option value="'Updates','Multibases','DAIS','Acds','Legis','LegAll'">All</option>  
        <option value="Updates">Updates</option>    
        <option value="Multibases">Multibases</option>  
        <option value="DAIS">DAIS</option>  
        <option value="Acds">Admin Codes</option>  
        <option value="Legis">Legis</option>  
        <option value="LegAll">Legis-All</option>  
            </select></td>  
            <td><input type="submit" value="Generate" id="sub1" name="sub1"></td></tr>  
    </table> </form>   </body>  

,jsp在

之下
<%--   
Document   : Reports  
Created on : Oct 25, 2012, 4:53:23 PM  
Author     : u0138039  
--%>  

<%@page contentType="text/html" pageEncoding="UTF-8"%>  
<%@include file="DBCon.jsp" %>  
<!DOCTYPE html>  
<html>  
<head>  
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  

</head>  
<body><table>  
    <%  

    String[] a=request.getParameterValues("type");  
    String b=request.getParameter("user");  
    try{  
        ps=con.prepareStatement("Select * from Scope1");  

        ps=con.prepareStatement("SELECT SUM(Update_Count) FROM Scope1 where type ='"+a+"' and Specialist='"+b+"'");  
        rs=ps.executeQuery();  
        while(rs.next())  
                           {%>  
                           <tr>  
                               <td><%=a%>:</td><td>  
                               <%=rs.getString(1)%>  
                               </td></tr>  
      <% }  

                   }  
    catch(Exception e)  
    {  
        out.println(e);  
}  
%>  


  

并从下拉列表中检索所有值我使用下面的sql代码

SELECT SUM(Update_Count) FROM Scope1 where type IN ('All','Updates','Multibases','DAIS','Acds','Legis','LegAll') and Specialist='b';

并单独检索我使用下面的代码

 ps=con.prepareStatement("SELECT SUM(Update_Count) FROM Scope1 where type IN ('"+a+"') and Specialist='"+b+"'");

我想将它放在一个语句中,并且我希望当我选择全部时输出以表格格式显示。

由于

2 个答案:

答案 0 :(得分:1)

我看到的一个问题是在这个陈述中

ps=con.prepareStatement("SELECT SUM(Update_Count) FROM Scope1 
where type ='"+a+"' and Specialist='"+b+"'");

因为a是数组类型,当您在上面的sql语句中指定它时,您提到的a没有数组索引。因此,这个sql语句必定是失败的。

String[] a=request.getParameterValues("type"); 

修改

我可以看到另一个问题

<%=rs.getString(1)%>  

你应该使用

<%=rs.getInt(1)%>  

因为SELECT SUM(Update_Count)返回了号码,所以getString会给你一个错误。

答案 1 :(得分:0)

我相信您需要调整查询以撤回类型列,并包含一个分组依据。 这将在结果集中为您提供多行。 您需要以编程方式根据需要调整IN子句中的内容。

SELECT SUM(Update_Count),输入FROM Scope1,其中输入IN('All','Updates','Multibases','DAIS','Acds','Legis','LegAll')和Specialist ='b' 按类别分组;