android - 检查游标是否有结果

标签 android sqlite

我正在使用数据库存储日期,并希望根据 where 子句中给出的 id 返回单个列。

    public String getPmax(String serial) {

    String[] columns = new String[]{KEY_SERIAL, KEY_PMAX};      
    Cursor c = ourDatabase.query(DATABASE_TABLE, columns, "serial = " + serial,
    null, null, null, null);

    String result = "nothing found";

    if(c != null) {

        int iPmax = c.getColumnIndex(KEY_PMAX); 

        c.moveToFirst();
        result = c.getString(iPmax);

    }

    return result;  

}

如果我使用数据库中的序列号,此代码有效,但当我使用不在数据库中的序列号时,它会强制关闭!

它说:

04-11 16:31:19.423: E/AndroidRuntime(21226): java.lang.RuntimeException: Unable to start activity ComponentInfo{nl.janjanus.solardetect/nl.janjanus.solardetect.DatabaseView}: android.database.sqlite.SQLiteException: no such column: g: , while compiling: SELECT serial, pmax FROM SolareCel WHERE serial = g

所以我的问题是:如何检查是否有结果?还是我需要检查给定的序列号是否是数据库中的序列号?

最佳答案

    if (!(mCursor.moveToFirst()) || mCursor.getCount() ==0){
     //cursor is empty
}

关于android - 检查游标是否有结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10108385/

相关文章:

android - GridView自定义,如何选择单个项目

java - 如何关闭 Android 中的全部应用程序?

SQL 查询。不寻常的加入。在 sqlite-3 中实现的数据库

iphone - sqlite 插入在 xcode 模拟器上工作但不在 iphone 上工作

ios - 如何使用 SQLite.swift 删除表或更新列?

具有相交和除外的sqlite查询

java - 通过 Java lib Apache Commons 上传文件的简明示例

javascript - Canvas js 导出启用无法在 Android 设备上运行

java - 使用堆栈交换 API

java - 获取选定的recyclerView项目的id android