Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android CursorIndexOutOfBoundsException:_Android_Android Sqlite - Fatal编程技术网

Android CursorIndexOutOfBoundsException:

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

我是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

     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@AMANSINGH
cursor.moveToFirst()
已用于代码Aravind postedin first line try with
String countQuery=“SELECT*FROM”+DASHBOARD\u TABLE+,其中“+VECHICAL\u TYPE+”='c'