在android中,如何从游标中检索特定字段对应的数据?
数据库类在android中,如何从游标中检索特定字段对应的数据?,android,sqlite,Android,Sqlite,数据库类 public boolean Permissions(String modulename) { int createable, updateable; Cursor cursor = db.rawQuery("select * from " + "moduleDesc" + " where " + "name" + "='" + modulename + "'", null); if (cursor.getCount() > 0);
public boolean Permissions(String modulename) {
int createable, updateable;
Cursor cursor = db.rawQuery("select * from " + "moduleDesc" + " where "
+ "name" + "='" + modulename + "'", null);
if (cursor.getCount() > 0);
{
createable = cursor.getInt(cursor.getColumnIndex("createable"));
updateable = cursor.getInt(cursor.getColumnIndex("updateable"));
cursor.close();
}
if ((createable == 1) && (updateable == 1)) {
return true;
} else {
return false;
}
}
我得到的错误是createablecursor.getInt(cursor.getColumnIndex(“createable”))上的cursorindexoutofbounds代码>
虽然游标有一些值,但它仍然会给出这个错误!!!thanx提前而不是:
if (cursor.getCount() > 0) {
//Code here
}
使用
这可能会解决你的问题
Try this solution
public boolean Permissions(String modulename) {
int createable, updateable;
Cursor cursor = db.rawQuery("select * from " + "moduleDesc" + " where "
+ "name" + "='" + modulename + "'", null);
if (cursor.getCount() > 0);
{
cursor.MoveToFirst();//use this if cursor count is 1 else use while loop
//while (cursor.MoveToNext){
createable = cursor.getInt(cursor.getColumnIndex("createable"));
updateable = cursor.getInt(cursor.getColumnIndex("updateable"));
//}
cursor.close();
}
if ((createable == 1) && (updateable == 1)) {
return true;
} else {
return false;
}
}正确关闭光标
public boolean Permissions(String modulename) {
Cursor cursor = db.rawQuery("select * from " + "moduleDesc" + " where "
+ "name" + "='" + modulename + "'", null);
if (cursor != null) {
try {
if (cursor.moveToFirst()) {
int createable = cursor.getInt(cursor.getColumnIndex("createable"));
int updateable = cursor.getInt(cursor.getColumnIndex("updateable"));
return (createable == 1) && (updateable == 1);
}
} finally {
cursor.close();
}
}
return false;
}
在获取数据之前,您需要首先将光标移动到第一条记录。
public boolean Permissions(String modulename) {
Cursor cursor = db.rawQuery("select * from " + "moduleDesc" + " where "
+ "name" + "='" + modulename + "'", null);
if (cursor != null) {
try {
if (cursor.moveToFirst()) {
int createable = cursor.getInt(cursor.getColumnIndex("createable"));
int updateable = cursor.getInt(cursor.getColumnIndex("updateable"));
return (createable == 1) && (updateable == 1);
}
} finally {
cursor.close();
}
}
return false;
}