2013-07-02 58 views
0

我希望此方法在從表中讀取後返回ap字符串,但它似乎只返回我給它的初始值,任何想法?從try select後返回一個sql select select

public String ReadAp(String val) { 

    SQLHelper sql = new SQLHelper(); 
    String apStr = "Test ap initial"; 
    try 
     { 
      sql.Init("DB_Name"); 

      ResultSet rsData = sql.RunSelect("select AP from DB_Name.myTable where  

MD='"+val+"'"); 

      apStr = rsData.getString("AP"); 

     } 
    catch(Exception exInit) 
     { 

      System.out.println("Excepted while attempting to connet to: "); 
     } 



return apStr; 

} 
+4

請仔細閱讀此說明:[xkcd.com/327/](http://xkcd.com/327/) – jlordo

+1

例外..................... – NINCOMPOOP

+0

@jlordo。那個真棒。哈哈:) –

回答

1

當您在JDBC獲得的ResultSet對象,你總是應該做

if (rs.next()) { 
    // rs.getString(... 
} 

,這是因爲該查詢可以因此沒有返回值的需要檢查是否有下一行,如果你每次都不做下一步(即使是第一次),你也什麼也得不到。

+0

我這樣做,問題是該字符串不在方法結束時返回。 – spitti84

+0

根據您顯示的代碼,在調用rsData.getString之前,您沒有調用rsData.next()。如果數據庫中存在該記錄的值,則ResultSet需要返回值 –

+0

首先,您執行的程序是否會引發異常?你可以顯示SQLHelper的代碼嗎? –