有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Android SQLite调用检索除REAL之外的所有值

我已经看了好几个小时的代码,但没有找到错误所在。我需要第二眼和第三眼。这可能是显而易见的

我甚至尝试编写一个单独的函数来收集数据,但也失败了

收集数据的代码如下所示:

    public double getHeight(){
    double height = 0;

    String querySettings = "SELECT " +
        KEY_USER_SETTINGS_HEIGHT +
        " FROM " + TABLE_USER_SETTINGS + " WHERE _id = 1;";

    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.rawQuery(querySettings, null);
    if (cursor.moveToFirst()) {
      do {
        height = cursor.getDouble(0);
      } while (cursor.moveToNext());
    }

    // closing connection
    cursor.close();
    db.close();

    return height;
  }

光标字符串如下所示:

SELECT height FROM user_settings WHERE _id = 1;

在完全相同的数据库上,在单独的客户端(如DB Browser)中运行它,将呈现以下结果:

186.0

在应用程序中运行完全相同的查询会让我:

0.0

我有一个更大的函数,可以收集所有类型的数据,并将其全部收集起来。它们都是int,可以重试。这是唯一一个不起作用的。logcat中没有错误

我错过了什么明显的东西

更新1 @Mike _id=1存在并正在使用,因为我获取了该行中的其他数据。数据库将从虚拟设备中复制出来。即使我没有指定行并使用“所有行”(那里只存在一行),同样的事情也会发生

@Diego mCount=1


共 (1) 个答案

  1. # 1 楼答案

    我没有更多的时间来搜索出错的地方,所以我尝试重新创建整个数据库。这就解决了问题。很奇怪。我与数据库合作多年,这在我身上从未发生过

    代码是一样的,但现在可以用了。断层的确切性质仍不清楚。要么是虫子,要么是我做错了什么。只有一行中的一列出现故障。即使我做了“从用户设置中选择*”,该高度也只会返回0.0。该行中的所有其他列都正确返回了数据

    谢谢你们的帮助