【问题标题】:Reading a value from a database从数据库中读取值
【发布时间】:2012-12-25 13:39:04
【问题描述】:

我的应用中有一个数据库,其中包含几列,其中 3 列是:_idnameselected
现在,我想从一行中读取一个 selected 值,其中 name 是我从某些代码中获得的字符串。最好的方法是什么?
谢谢

附:我正在获取该值来检查它是 0 还是 1(只有两个可能的值),所以我想问一下如何在 return 字段中创建一种 if 语句?我见过一些人用类似这样的东西来做这件事:return true ? ... false

编辑:
好的,这是我的代码 atm,还没有检查它,因为我需要做一些其他的事情来完成它,但我认为可能有更好的方法来做到这一点。

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";
}

【问题讨论】:

  • 我不明白。这个 0 或 1 在哪一列?顺便说一句,该语法是return a_condition ? this_if_true : this_if_false
  • 请提供完整的代码 sn-p 说明您正在尝试做什么。
  • 附注听起来你在描述ternary operator
  • @Code-Guru 我不知道要发布的代码的哪一部分对我的问题有益。正如我所说,我只想从数据库的一列中获取一个值,该列位于一行中,其中包含另一列的给定值。英语不是我的母语,但我会尽力解释我的问题! :)
  • 底层数据库中的“selected”列是什么类型的?

标签: android database select if-statement return


【解决方案1】:

您可以使用正则表达式来匹配名称字段为字符串的行。许多数据库都可以支持正则表达式。

三元运算符(? :) 可以用来做这样的return语句。

return value == 0 ? false : true

但这取决于你返回什么类型的数据。上面的代码返回布尔数据类型。

上面代码的最后一行将始终返回false。这是因为== 运算符比较了两个对象的引用。你可以使用:

return "1".equals(selected); 

【讨论】:

  • 您不需要三元运算符。只需返回value != 0
  • 是的,你是对的。我只是猜提问者问的是三元运算符。
  • 感谢伙伴们的回复,但谁能进一步详细说明“数据库中的值”问题? :)
  • @AleksaPavlovic 你的意思是你想要一些如何从数据库中详细查询数据的例子吗?
  • 好吧,我现在在编辑中发布了我如何读取单个值的代码,但我想知道这是否是正确的方法,是否有更有效的方法,因为这只是一个我的代码的“缩小”版本,我用它来选择有一些限制的所有数据。
猜你喜欢
  • 2011-08-21
  • 1970-01-01
  • 2017-04-21
  • 1970-01-01
  • 1970-01-01
  • 2011-08-25
  • 1970-01-01
  • 2012-08-18
相关资源
最近更新 更多