2013-01-11 78 views
1

讀值我在我的應用程序數據庫與幾個列,其中的3:_idnameselected
現在,我想從一行中讀取單個selected值,name是我從某些代碼獲得的字符串。什麼是最好的方法來做到這一點?
感謝從數據庫

附:我得到這個值來檢查它是0還是1(只有兩個可能的值),所以我想問如何在return字段中做一種if語句?我見過一些人用類似的東西這樣做:return true ? ... false

編輯:
好吧,這是我的代碼自動取款機,沒有檢查它尚未因爲我需要做一些其他的事情讓這一切,但我認爲可能有更好的方法來做到這一點。

public boolean isBandSelected(String name) { 
    // TODO Auto-generated method stub 
    Cursor cursor = mDb.query("bands", new String[] { "selected" }, "name=" 
      + name, null, null, null, null); 
    int index = cursor.getColumnIndex("selected"); 
    String selected = cursor.getString(index); 
    return selected == "1"; 
} 
+2

我不明白。這個0或1是什麼列?順便說一下,該語法是'返回a_condition? this_if_true:this_if_false' – JesseTG

+0

請提供完整的代碼片段,說明您正在嘗試做什麼。 –

+0

p.s.這聽起來像你在描述[三運算符](http://en.wikipedia.org/wiki/%3F :)。 –

回答

2

您可以使用正則表達式來匹配其名稱字段爲字符串的行。許多數據庫都支持正則表達式。

三元運算符(?:)可用於使返回語句像這樣。

return value == 0 ? false : true 

但它取決於你要返回什麼樣的數據類型。上面的代碼返回布爾數據類型。

上面的代碼的最後一行將始終返回false。這是因爲==運算符會比較兩個對象的引用。你可以使用:

return "1".equals(selected); 
+1

你不需要三元運算符。只需返回'value!= 0'。 – JesseTG

+0

是的你是對的。我只是猜測提問者被問到三元運算符。 – wawlian

+0

感謝答覆隊友,但任何人都可以詳細闡述「數據庫中的價值」問題嗎? :) – murtaugh