2011-07-24 39 views
0

這就奇怪了...我顯示在一個HTML表格的結果,但我越來越取決於是否/如何我調試顯示不同數量的結果。如果我慢慢地調試並擊中每條線,那麼所有的結果都會顯示出來。如果我只是運行它,或者不通過每行一步,然後我只得到表中的一個結果。無論哪種方式,結果集確實有正確的行號,他們只是沒有被正確地顯示在表格中。爲什麼我的查詢結果中顯示不同的調試時?

有沒有人有,爲什麼這種奇怪的行爲是發生什麼想法?我正在使用Eclipse Indigo。下面是我用來選擇記錄並顯示它們的代碼塊。

 try { 
    String query = 
    "Select * from plants where name = '" 
    + name + "'"; 
    String plantName = ""; 
    ResultSet rs = sttmnt.executeQuery(query); 

while (rs.next()) { // display information for each plant. 
     plantName = rs.getString(2); // display fields in cells 
     out.println("<tr><td>"); 
     out.println(plantName + "</td><td>"); 
     out.println(rs.getString(3) + "</td><td>"); 
     out.println("$" + rs.getString(5) + "</td><td>"); 
     out.println(rs.getString(4) + "</td>"); 
     out.println("<input type=\"hidden\" name=\"plantName" + 
     plantNo + "\" value=\"" + plantName + "\">"); 
     out.println("<input type=\"hidden\" name=\"plantID" + 
     plantNo + "\" value=\"" + rs.getString(1) + "\">"); 
     out.println("</tr>"); 
     plantNo++; 
    } 
    if (plantNo == 0) out.println("<tr><td align=\"center\" " + 
      " colspan=\"4\">Sorry, there are currently no " + name 
      + " plants for sale.</td></tr>"); 
    else 
     out.println("<tr><td align=\"center\" " + 
       " colspan=\"4\">Showing " + plantNo 
       + " results. </td></tr>"); 

    out.println("</table>"); 
    rs.close(); 
    } 
+0

我看不錯,嘗試一個文件輸出流 –

+0

均不表明其有密切關係的問題,但你打開自己註冊與串聯SQL SQL注入攻擊。使用綁定變量。 – atrain

回答

0

嘗試將所有輸出附加到StringBuffer並打印出來,一舉全出。你也可以節省物體。您的代碼變成:

try { 
String query = "Select * from plants where name = ?"; 
sttmnt.setString(1, name); 
String plantName = ""; 
ResultSet rs = sttmnt.executeQuery(query); 

StringBuffer output = new StringBuffer(); 
while (rs.next()) { // display information for each plant. 
    plantName = rs.getString(2); // display fields in cells 
    output.append("<tr><td>"); 
    output.append(plantName + "</td><td>"); 
    output.append(rs.getString(3) + "</td><td>"); 
    output.append("$" + rs.getString(5) + "</td><td>"); 
    output.append(rs.getString(4) + "</td>"); 
    output.append("<input type=\"hidden\" name=\"plantName" + 
    plantNo + "\" value=\"" + plantName + "\">"); 
    output.append("<input type=\"hidden\" name=\"plantID" + 
    plantNo + "\" value=\"" + rs.getString(1) + "\">"); 
    output.append("</tr>"); 
    plantNo++; 
} 
if (plantNo == 0) output.append("<tr><td align=\"center\" " + 
     " colspan=\"4\">Sorry, there are currently no " + name 
     + " plants for sale.</td></tr>"); 
else 
    output.append("<tr><td align=\"center\" " + 
      " colspan=\"4\">Showing " + plantNo 
      + " results. </td></tr>"); 

output.append("</table>"); 
out.println(output.toString()); 
rs.close(); 
} 
0

嘗試將out.flush()放在代碼末尾。這可能是因爲數據只是坐在一個緩衝區中等待您正常運行代碼來發送。

相關問題