Как получить данные из SQLite? - PullRequest
0 голосов
/ 17 сентября 2018

Я работаю с базой данных sqlite, в которой я уверен, что я правильно вставил в sqlite.Теперь я получаю данные из sqlite с помощью курсора, но когда я устанавливаю данные в Texview, мое приложение вылетает.Вот моя таблица: вот мой код базы данных:

SQLiteDatabase db = this.getReadableDatabase();
    String query = "SELECT * FROM " + PRODUCT_TABLE + " WHERE ID = 23";
    Cursor cursor = db.rawQuery(query,null);
    return cursor;

Вот мой код курсора:

Cursor cursor = dbHelper.getCheckOutProduct(Id);
        if (cursor != null && cursor.getCount() > 0) {
            do {
                int proId = cursor.getInt(cursor.getColumnIndex("ID"));
                int addressId = cursor.getInt(cursor.getColumnIndex("Price"));
                int paymentTypeID = cursor.getInt(cursor.getColumnIndex("Quantity"));
                int customerID = cursor.getInt(cursor.getColumnIndex("ProductID"));
                Log.e("ProductId",String.valueOf(proId));
            }while (cursor.moveToNext());
        }

Где я делаю ошибку?

here is my exception

Ответы [ 3 ]

0 голосов
/ 17 сентября 2018
SQLiteDatabase db = this.getReadableDatabase();
    String query = "SELECT * FROM " + PRODUCT_TABLE + " where id = 23";
    Cursor cursor = db.rawQuery(query,null);
    return cursor;

это правильный запрос, я думаю

0 голосов
/ 17 сентября 2018

Где вы храните полученные значения курсора формы? Для простоты вы можете создать модель с необходимыми атрибутами и установить ее один за другим, а также вернуть список, подобный этому:

Cursor cursor = dbHelper.getCheckOutProduct(Id);
List<Model> values = new ArrayList<>();
    if (cursor != null && cursor.getCount() > 0) {
        do {
            int proId = cursor.getInt(cursor.getColumnIndex("ID"));
            int addressId = cursor.getInt(cursor.getColumnIndex("Price"));
            int paymentTypeID = cursor.getInt(cursor.getColumnIndex("Quantity"));
            int customerID = cursor.getInt(cursor.getColumnIndex("ProductID"));

            Model model = new Model();
            model.setProdId(prodId);
            //just like above line set other desired values.                
            values.add(model);
            Log.e("ProductId",String.valueOf(proId));
        }while (cursor.moveToNext());
    }

    return values;

Надеюсь, это поможет отладить проблему.

0 голосов
/ 17 сентября 2018
     if (cursor != null && cursor.getCount() > 0) {
           cursor.moveToFirst();
                do {
                    int proId = cursor.getInt(cursor.getColumnIndex("ID"));
                    int addressId = cursor.getInt(cursor.getColumnIndex("Price"));
                    int paymentTypeID = cursor.getInt(cursor.getColumnIndex("Quantity"));
                    int customerID = cursor.getInt(cursor.getColumnIndex("ProductID"));
                    Log.e("ProductId",String.valueOf(proId));
                }while (cursor.moveToNext());
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...