Количество строк показывает 0 - PullRequest
0 голосов
/ 26 ноября 2018

Счет показывает 0 даже после успешной вставки данных

  MainData helper2 = new MainData(this); //Change the name to your Helper Class name
    SQLiteDatabase db2 = helper2.getWritableDatabase();
    int userData = 0;
    Cursor data2 = helper2.getUserData();
    while (data2.moveToNext()) {
        userData = data2.getInt(data2.getColumnIndex("MessagesSent"));
    }
    ContentValues contentValues2 = new ContentValues();
    contentValues2.put(KEY_ID, MessageRecieverId);
    contentValues2.put(KEY_NAME, MessageRecieverName);
    contentValues2.put(KEY_MESSAGES_SENT, userData+1);
    long returnVariable2 = db2.update(TABLE_USER_DATA, contentValues2, null, null);
    if (returnVariable2 == -1) {
        Toast.makeText(getApplication(), "Nope", Toast.LENGTH_LONG).show();
        //-1 means there was an error updating the values
    } else {
        Toast.makeText(getApplication(),"uf", Toast.LENGTH_SHORT).show();
    }

Показывает uf, что означает его вставку, но когда я вызываю метод count, он показывает 0 строк ... Может кто-нибудь помочь мне, пожалуйста

Количество

    public int getProfilesCount() {
    String countQuery = "SELECT  * FROM " + TABLE_USER_DATA;
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.rawQuery(countQuery, null);
    int count = cursor.getCount();
    cursor.close();
    return count;
}

Активность

int profile_counts = myDBHlpr.getProfilesCount();
    Log.d("BLAHHHHHHH", String.valueOf(profile_counts));

1 Ответ

0 голосов
/ 26 ноября 2018

С этим

db2.update()

вы не вставляете строки в таблицу, а обновляете существующие.Вы должны использовать

db2.insert()

, чтобы вставить новую строку.db2.update() возвращает количество обновленных строк.В вашем случае , поскольку в таблице нет строк , возвращается 0.Поэтому, когда вы сравниваете результат с -1, он терпит неудачу, и вы видите uf Toast.Если нет строк, где обновляется, возвращается 0.Сделайте так:

long returnVariable2 = db2.insert(TABLE_USER_DATA, null, contentValues2);

db2.insert() возвращает -1, если процедура не удалась.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...