这是一个代码/方法来查找表中是否存在某个名称..
Contact getContact(String name) {
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(TABLE_CONTACTS, new String[] { KEY_ID,
KEY_NAME, KEY_PH_NO }, KEY_NAME + "=?",
new String[] { String.valueOf(name) }, null, null, null, null);
if (cursor != null)
cursor.moveToFirst();
Contact contact = new Contact(Integer.parseInt(cursor.getString(0)),
cursor.getString(1), cursor.getString(2));
db.close();
cursor.close();
// return contact
return contact;
}
我已经有了一个函数来获取 arrayList 中的所有名称。我可以在调用上面的函数之前调用它来解决我的问题。但我想问一下有没有其他(直接)方法可以做到这一点
最佳答案
当您调用 cursor.moveToFirst()
时,如果存在有效结果,它将返回 true
,否则返回 false
结果被发现。如果 cursor.moveToFirst()
返回 false
,则调用任何 getXXX()
方法都会失败。
尝试这样的事情:
if( cursor.moveToFirst() )
{
Contact contact = new Contact(Integer.parseInt(cursor.getString(0)),
cursor.getString(1), cursor.getString(2));
}
cursor.close();
请注意,SQLiteDatabase.query
返回的Cursor
保证非空。
关于android - 当我搜索表中不存在的名称时,我的 android sqlite 数据库应用程序关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14024202/