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 楼答案
我没有更多的时间来搜索出错的地方,所以我尝试重新创建整个数据库。这就解决了问题。很奇怪。我与数据库合作多年,这在我身上从未发生过
代码是一样的,但现在可以用了。断层的确切性质仍不清楚。要么是虫子,要么是我做错了什么。只有一行中的一列出现故障。即使我做了“从用户设置中选择*”,该高度也只会返回0.0。该行中的所有其他列都正确返回了数据
谢谢你们的帮助