2016-05-03 3 views
2

У меня есть метод, как тотвставки или обновления в Android

private void addDataToDailyStatisticsIncome(String date, String money, int idUser){ 
    Cursor res1 = db.getDataTableDailyStatistic(idUser); 
    int temp = 0; 
    int money1, money2; 

    res1.moveToFirst(); 
    while (res1.moveToNext()) { 
     if (date.equals(res1.getString(1)) == true) { 
      temp = 1; 
      break; 
     } else { 
      temp = 0; 
     } 
    } 

    if(temp == 1){ 
     money1 = Integer.parseInt(res1.getString(3)); 
     money2 = Integer.parseInt(money); 

     money1 = money1 + money2; 

     long isUpdated = db.updateTableDailyStatistic(res1.getString(1), Integer.toString(money1), idUser, Integer.parseInt(res1.getString(0))); 

    } else{ 
     long isInserted = db.insertTableDailyStatistic(date, money, idUser); 
    } 
} 

Я хочу, чтобы проверить, когда новые данные вставки в приложение. Если доступно «date», я обновлю «money» в тот же день. Или если «date» не доступен, я введу новый Date с Money.

Но у меня есть 1 проблема, что она всегда вставляет, она никогда не обновляется, хотя у меня такой же Date в Database. Можете ли вы помочь мне исправить эту проблему?

+0

какие данные вы получить от 'da te' и 'res1.getString (1)' variable? –

+0

Используйте отладчик и проверьте, соответствует ли (date.equals (res1.getString (1)) true) это условие – Pavya

+0

res1.getString (1) - это тип моей базы данных. Дата - это текст EditText. –

ответ

0

Вы можете сделать это, указав дату как первичный ключ. Напишите оба запроса sql (вставка и обновление) в указанном выше методе.

1

Выполните следующие действия:

  1. Проверьте date доступна и получить money1:

    int money1 = 0; 
    boolean isAvailable = false; 
    String query = "select count(*) from TableName where date = ?"; 
    Cursor cursor = db.rawQuery(query, new String[] {date}); 
    if (cursor != null && cursor.moveToFirst()) { 
        isAvailable = true; 
        money1 = cursor.getInt(money1_column); 
        cursor.close(); 
    } 
    
  2. вставки или обновления строки:

    if (isAvailable) { 
        // update 
    } else { 
        // insert 
    } 
    
Смежные вопросы