在JSP中从MySQL数据库获取价值

日向

以下代码用于从MySQL数据库获取PONo并在按钮中查看它们。

当用户单击(查看PONo)按钮时,将显示另一个页面来查看该特定PONo的采购订单信息。(viewpo.jsp)

但是,如我在屏幕截图中单击104时所示,显示了102个采购订单详细信息。当我单击102时,显示102采购订单详细信息。在此处输入图片说明如何解决这个错误?

 <%
    String CONN_STRING = "jdbc:mysql://localhost/pmsdb";
    String USERNAME = "dbuser";
    String PASSWORD = "dbpassword";

    Connection conn=null;
    PreparedStatement pst=null;
    ResultSet rs =null;
    ResultSet rs2 =null;
    ResultSet rs3 =null;
    Statement stmt=null;
    Statement stmt2=null;

    Object userr = session.getValue("Username");
    String user = userr.toString();
    Class.forName("com.mysql.jdbc.Driver");

    conn = DriverManager.getConnection(CONN_STRING, USERNAME, PASSWORD);

    String sql0="SELECT * FROM websupplierinfo WHERE username='"+user+"'";
    pst=conn.prepareStatement(sql0);
    rs3=pst.executeQuery();

    if(rs3.next()){
    String companyname = rs3.getString("Company");

    String sql = "SELECT * FROM purchaseorderinfo WHERE Supplier='"+companyname+"' ORDER BY PONo DESC";
   // String sql2 = "SELECT * FROM itemspoinfo WHERE Company='"+companyname+"' ORDER BY PONo DESC";
    stmt = conn.createStatement();
    rs=stmt.executeQuery(sql);

    //stmt2=conn.createStatement();
   // rs2=stmt2.executeQuery(sql2);

    %> 

<div class="row">
    <div class="col-md-12">
        <div class="citydetails">
            <div class="panel panel-primary">
                <div class="panel-heading">Available Purchase Orders</div>
                    <div class="panel-body">
                        <table class="table">
                            <tr>
                                <th>All Purchase Orders</th>


                            </tr>
                            <tr><td><form>
            <div class="form-group">
                <div class="row">
                    <div class="col-sm-6 center-block">
                        <input type="button" name="view" id="view" tabindex="1" class="form-control btn btn-login" value="All Purchase Orders" onclick="window.open('alladminpo.jsp','_blank','resizable=yes')">
                    </div>
                </div>
            </div>    
        </form></td>
        </tr>    

      <th>Latest Purchase Order Numbers</th>                                  
    <%while(rs.next()){ %>
    <tr>
    <td>
      <form>
            <div class="form-group">
                <div class="row">
                    <div class="col-sm-2 center-block">
                        <input type="button" name="view" id="view" tabindex="1" class="form-control btn btn-login" value="<%=rs.getString("PONo")%>" onclick="window.open('viewpo.jsp','_blank','resizable=yes')">
                   <% 
          String po = rs.getString("PONo");
          session.putValue("PONo", po);
                   %>
                    </div>
                </div>
            </div>    
        </form>
      <% }}%>
    </td>                             
    </tr>                   
                        </table>
                    </div>
            </div>
        </div>
    </div>
</div>

viewpo.jsp(重要的代码段);

    <%
    String CONN_STRING = "jdbc:mysql://localhost/pmsdb";
    String USERNAME = "dbuser";
    String PASSWORD = "dbpassword";

    Connection conn=null;
    ResultSet rs =null;
    ResultSet rs2 =null;

    Statement stmt=null;
    Statement stmt2=null;

    Class.forName("com.mysql.jdbc.Driver");

    conn = DriverManager.getConnection(CONN_STRING, USERNAME, PASSWORD);

    Object po = session.getValue("PONo");
    String pno=po.toString();

    String sql = "SELECT * FROM purchaseorderinfo WHERE PONo='"+pno+"'";
    String sql2 ="SELECT * FROM itemspoinfo WHERE PONo='"+pno+"'";

    stmt = conn.createStatement();
    rs=stmt.executeQuery(sql);

    stmt2=conn.createStatement();
    rs2=stmt2.executeQuery(sql2);
    %>  

<div class="row">
<div class="col-md-12">
<div class="citydetails">
    <div class="panel panel-primary">
      <div class="panel-heading">Purchase Order Details</div>
      <div class="panel-body">
          <table class="table">
              <thead>
                    <tr>
                        <th>Purchase Order <%=session.getValue("PONo") %></th>
                    </tr>   
              </thead>
            <tbody>

                    <tr>

                        <td>
                            <% if(rs.next()){ %>
                            Purchase Order Date : <%= rs.getString("PODate") %><br>
                            Expected Date : <%=rs.getString("ExpectedDate") %> <br>
                            <% } %> 

                            <table class="table">
                                <tbody>
                                    <tr>
                                        <th>Items</th>
                                        <th>Quantity</th>
                                    </tr>
                                     <% if (rs2.next()){ %>
                                    <tr>

                                        <td><%=rs2.getString("ItemName")%></td>
                                        <td><%=rs2.getString("Qty")%></td>

                                    </tr>
                                    <% } %>
斯里努

您要替换中的PONo值,该session值仅包含最后一个值。因此,将PONo值作为request参数传递viewpo.jsp

   <input type="button" name="view" id="view" tabindex="1" class="form-control btn btn-login" value="<%=rs.getString("PONo")%>" onclick="window.open('viewpo.jsp?PONo=<%=rs.getString("PONo")%>','_blank','resizable=yes')">

并在您的jsp中删除以下代码,因为它替换了PONo的值。

 <% 
      String po = rs.getString("PONo");
      session.putValue("PONo", po);
 %>

viewpo.jsp我们可以访问PONo如下内容:

String pno=request.getParameter('PONo');

您必须使用的request.getParameter("PONo")任何地方session.getValue("PONo");

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章