2013-01-11 43 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