2015-06-11 17 views
1

基本上,我必須顯示一個數據庫表[該部分正在工作]的數據列表,然後我必須顯示最高的日期[表中的日期變量]。不管我做什麼,第二部分都不工作。2個SQL查詢在一個try/catch中。不工作

下面的代碼

try { 
     String SQL = "SELECT * FROM tb_rafael"; 

     ResultSet rs = BD.consultar(SQL); 

     String tab = ""; 

     int numReg = 0; 

     while (rs.next()) { 
      tab+="<TR>"; 
      tab+="<TD>" + rs.getString("nme_rafael") + "</TD>"; 
      tab+="<TD>" + rs.getString("dta_rafael") + "</TD>"; 
      tab+="</TR>"; 
      numReg++; 

      //mDat = rs2.getString("dta_rafael"); 
     } 

     rs.close(); 

     dados.put("DADOS", tab); 
     dados.put("NUM_REG", String.valueOf(numReg)); 


     //Pegar Data Maior 
     String SQL2 = "SELECT MAX(dta_rafael) FROM tb_rafael"; 


     ResultSet rs2 = BD.consultar(SQL2); 
     String mDat = ""; 

     //while(rs2.next()){ 

      mDat = rs2.getString("dta_rafael"); 

     //} 
     rs2.close(); 

     dados.put("MDA", mDat); 

    } catch (Exception ex) { 
     dados.put("MSG", "Erro: " + ex.getMessage()); 
    } 

你想看看已經過去的解說線「Pegar數據MAIOR」是什麼。這是不工作的部分。我嘗試添加一段時間,使用不同的ResultSe噸,使用相同的ResultSet和沒有工作。我知道這不是SQL查詢的問題,因爲我使用工作臺對其進行了測試,並向我返回了我想要的數據。

更具體地講,我沒有得到錯誤信息或任何內容,dados.put根本不起作用,我得到的只是這樣的:

怎樣的HTML代碼如下:

數據應顯示在哪裏{MDA}是。有人有主意嗎?

+0

必須是'while(rs2.next()){ mDat = rs2.getString(「dta_rafael」); }' 調試你的程序,看看你得到了什麼'mDat' – vels4j

+1

爲什麼你評論''//while(rs2.next()){''...?除非使用'next',否則會通過錯誤。 –

+0

我調試和mDat我得到:>沒有當前上下文(堆棧幀)< 順便說一句,如果這個問題我使用Netbeans 7.2,因爲我的uni使用 – tyranius

回答

1

查詢SELECT MAX(dta_rafael) FROM tb_rafael可能不會返回列名,您稍後嘗試檢索,rs2.getString("dta_rafael"); 我想以後更改查詢到SELECT MAX(dta_rafael) AS Max_date...,和參考MAX_date

+0

是的,這應該可能的作品。此外,你可以嘗試mDat = rs2.getString(1); – JFPicard

+0

謝謝soooooo了。我甚至沒有想過這樣做。我所做的是而不是rs2.getString(「dta_rafael」)當我運行查詢時,我使用了在工作臺中顯示的列名,所以結果是rs2.getString(「MAX(dta_rafael)」)並且它工作正常。 – tyranius