gpt4 book ai didi

java - 安卓/Java : How to get last row value in sqlite?

转载 作者:行者123 更新时间:2023-12-01 17:01:54 25 4
gpt4 key购买 nike

您好,我在 Android 应用程序中使用 sqlite 数据库,我有问题:我试图从表 TABLE_XYZ 的最后一行获取最后一个值文本(即列)...但它不起作用..我正在使用以下代码...我做错了什么?

另一个问题是,当我想从最后一行获取多个值(如列文本和消息)时,如何返回两个值而不是仅一个值?

private static final String KEY_MESSAGE = "message";
private static final String KEY_TEXT = "text";

...

String selectQuery= "SELECT * FROM " + TABLE_XYZ+" ORDER BY column DESC LIMIT 1";
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
cursor.close();
return cursor.getString( cursor.getColumnIndex(KEY_TEXT) );

编辑:

我的查询中有一些错误,我修复了它,但仍然有错误:

    String selectQuery= "SELECT * FROM " + TABLE_XYZ +  " ORDER BY " +  KEY_TEXT+ " DESC LIMIT 1";
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
String str = cursor.getString( cursor.getColumnIndex(KEY_TEXT );
cursor.close();
return str;

在调试时,我可以看到游标内部确实有正确的值...但是当我尝试使用此命令“cursor.getString(cursor.getColumnIndex(KEY_TEXT);”获取列值时...它没有工作...

最佳答案

您在获取其值之前关闭游标

试试这个:

String selectQuery= "SELECT * FROM " + TABLE_XYZ+" ORDER BY column DESC LIMIT 1";
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
String str = "";
if(cursor.moveToFirst())
str = cursor.getString( cursor.getColumnIndex(KEY_TEXT) );
cursor.close();
return str;

关于java - 安卓/Java : How to get last row value in sqlite?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27136940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com