【问题标题】:How to retrieve Real type data from specific cell in android sqlite?如何从android sqlite中的特定单元格检索Real类型数据?
【发布时间】:2020-11-01 11:07:11
【问题描述】:

在此表中,我想检索变量中的值 55.2。 该值位于第 5 行 (ID=5) 和 REAL 类型的“重量”列中。

我已经可以获得存储在“lastID”中的所需行号,并且我知道我的数据在“重量”列中。所以我的 X 和 Y 在表中。

我也知道在我的光标中检索 55.2 的 sqlite 命令:

Cursor cursor2 = db.rawQuery("SELECT Weight FROM <MYTABLE> WHERE ID=" + lastID, null);
Double lastWeight = cursor2.getDouble(0);  //This line is wrong, I need the help here!

但我无法从 cursor2 的变量 lastWeight 中获得我正在寻找的 55.2 值。

有什么想法吗?

附录

这里是创建表:

String CREATE_TABLE2 = "CREATE TABLE " + <MYTABLE> + " (" + UID2 + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
                COL_2 + " TEXT," + COL_3 + " TEXT," + COL_4 + " REAL," + COL_5 + " REAL);";
db.execSQL(CREATE_TABLE2);

【问题讨论】:

  • 分享CREATE TABLE,这样我们就可以知道重量的类型是什么

标签: java android sqlite android-sqlite


【解决方案1】:

这行代码执行后:

Cursor cursor2 = db.rawQuery("SELECT Weight FROM <MYTABLE> WHERE ID=" + lastID, null);

您会在cursor2 中获得结果。
cursor2 这样的Cursor 实例用于循环遍历其行,为此您必须首先将其索引放在moveToFirst() 的第一行:

if (cursor2.moveToFirst()) {
    Double lastWeight = cursor2.getDouble(0);
    ........................................
}

if 语句是必需的,以防游标不包含任何行。

【讨论】:

  • 确实!我的代码是正确的,但缺少 if 语句以使其正常工作。如果你不知道它是不可能发现的。非常感谢你!
猜你喜欢
  • 1970-01-01
  • 2017-10-15
  • 1970-01-01
  • 1970-01-01
  • 2019-02-20
  • 2021-11-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多