Android CursorIndexOutOfBoundsException:
我是android新手,我正在尝试获取与特定列值相关的游标值。但它显示为空Android CursorIndexOutOfBoundsException:,android,android-sqlite,Android,Android Sqlite,我是android新手,我正在尝试获取与特定列值相关的游标值。但它显示为空 public int getDashBoardCount() { String countQuery = "SELECT * FROM " + DASHBOARD_TABLE + " WHERE " + VECHICAL_TYPE + " = " + 'c'; 从这里我也没有得到这样的列:c(代码1):,而编译:SELECT*From dashboard\u table,其中vehicle\u type=c
public int getDashBoardCount() {
String countQuery = "SELECT * FROM " + DASHBOARD_TABLE + " WHERE " + VECHICAL_TYPE + " = " + 'c';
从这里我也没有得到这样的列:c(代码1):,而编译:SELECT*From dashboard\u table,其中vehicle\u type=c
String countQuery = "SELECT * FROM " + DASHBOARD_TABLE;
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(countQuery, null);
int cnt = cursor.getCount();
cursor.close();
return cnt;
}
public DashBoardAvaCapModel getVechicalRelAva(String vechical_type) {
SQLiteDatabase db = null;
Cursor cursor = null;
DashBoardAvaCapModel dash = null;
try {
db = this.getReadableDatabase();
cursor = db.query(DASHBOARD_TABLE, new String[]{_ID,
AVAILABLE, CAPACITY, BOOKED, VECHICAL_TYPE}, VECHICAL_TYPE + "=?",
new String[]{String.valueOf(vechical_type)}, null, null, null, null);
int idkey = cursor
.getColumnIndex(_ID);
int available = cursor
.getColumnIndex(AVAILABLE);
int capactity = cursor
.getColumnIndex(CAPACITY);
int booked = cursor
.getColumnIndex(BOOKED);
int vechicaltype = cursor
.getColumnIndex(VECHICAL_TYPE);
if (cursor != null && cursor.moveToFirst())
dash = new DashBoardAvaCapModel(Long.valueOf(cursor.getString(idkey)),
cursor.getString(available), cursor.getString(capactity), cursor.getString(booked), cursor.getString(vechicaltype));
Log.e("dash", "" + cursor.getString(available));
} catch (final Exception ex) {
String exp = String.valueOf(ex);
Log.e("Databa", "" + exp);
} finally {
cursor.close();
db.close();
}
return dash;
}
写了这行之后
cursor = db.query(DASHBOARD_TABLE, new String[]{_ID,
AVAILABLE, CAPACITY, BOOKED, VECHICAL_TYPE}, VECHICAL_TYPE + "=?",
new String[]{String.valueOf(vechical_type)}, null, null, null, null);
请试着写信
cursor.moveToFirst();
对于第一个,您可以使用
String countQuery = "SELECT * FROM " + DASHBOARD_TABLE + " WHERE " + VECHICAL_TYPE + " = '" + c + "'"
其中c是任意变量
希望这将帮助您什么是
VECHICAL\u类型
?你能发布你的CREATE TABLE
语句吗?目前您正在使用VECHICAL\u TYPE
作为列名和参数,因此实际上您是在说其中VECHICAL\u TYPE=VECHICAL\u TYPE
@marcin VECHICAL\u TYPE是string,create table语句是string DASHBOARD\u SAVING=“create table IF NOT EXISTS”+DASHBOARD\u table+”(“+\u ID+“整数主键自动递增,“+可用+”文本,“+容量+”文本,“+BOOKED+”文本,“+VECHICAL_TYPE+”文本“+”)";什么是车辆类型
?i、 e.VEHICAL\u TYPE=…
@Michael vechical\u TYPE是字符串值引用,它是列id引用;嗨,阿曼,谢谢你的快速反应,我已经准备好用这个了,但是它不起作用,你哪行出错了?你能不能指定光标后的位置?首先,我正在尝试重新获取该值,但我显示错误光标超出边界exception@AMANSINGHcursor.moveToFirst()
已用于代码Aravind postedin first line try withString countQuery=“SELECT*FROM”+DASHBOARD\u TABLE+,其中“+VECHICAL\u TYPE+”='c'代码>