2012-08-30 43 views
-3

我是一個noob到android,我想在我的數據庫上運行一個查詢,從我的表中返回一個字符串值。我通過使用long來選擇我的行ID,從而在一個查詢中成功完成了此操作。這裏顯示:如何在數據庫上執行查詢時修復SQLException?

public String getHotness(long l) throws SQLException{ 
    // TODO Auto-generated method stub 
    String[] columns = new String[]{ KEY_ROWID, KEY_NAME, KEY_HOTNESS }; 
    Cursor c = ourDatabase.query(DATABASE_TABLE, columns, KEY_ROWID + "=" + l, null, null, null, null); 
    if (c != null){ 
     c.moveToFirst(); 
     String hotness = c.getString(2); 
     return hotness; 
    } 
    c.close(); 
    return null; 
} 

但現在我必須查詢另一個表使用字符串,但是當我執行此查詢時,我得到一個SQLException。

public String getSingleQty(String aCoin) throws SQLException{ 
    // TODO Auto-generated method stub 
    String[] columns = new String[]{ KEY_ROWID, KEY_NAME, KEY_QUANTITY, KEY_OUNCES, KEY_VALUE};  
    Cursor c = ourDatabase.query(DATABASE_TABLE, columns, KEY_NAME + "=" + aCoin, null, null, null, null); //<--this causes exception 
    String result = ""; 

    if (c != null){ 
     c.moveToFirst(); 
     result= c.getString(2); 
     c.close(); 
     return result; 
    } 
    c.close(); 
    return null; 

我不明白爲什麼會發生這種情況。我對這兩個表格使用了相同的格式。任何幫助是極大的讚賞。

+3

和最新的異常???把Stacktrace它.. – user370305

+0

有什麼異常? – Selvin

回答

3

由於aCoin作爲字符串傳遞給查詢,因此必須用撇號包裝。代碼更正片段:

Cursor c = ourDatabase.query(DATABASE_TABLE, columns, KEY_NAME + "='" + aCoin + "'", null, null, null, null); 

或者(如果語法適合你更好的)嘗試這種方式:

Cursor c = ourDatabase.query(DATABASE_TABLE, columns, KEY_NAME + "=?", new String[] {aCoin}, null, null, null); 
+0

nie bardzo,nie bardzo ... raczej KEY_NAME +「=?」我圖騰jako參數... – Selvin

+0

obarozwiązaniasąpoprawne,kwestiaskładni(ktojakąwoli) –

+0

問題由siepojawiłjak由w zmiennej aCoinbyłapostrof''':) – Selvin

相關問題