перед вставкой данных в Бд проверьте, все ли значения существуют или нет в Android?

#android

#Android

Вопрос:

перед вставкой данных в БД проверьте, существуют ли все значения или нет .. если они существуют, значит, нет необходимости вставлять … если не существует, значит, вставьте значения в БД…..

         sql_db = helper.getWritableDatabase();
        Cursor cursor = sql_db.rawQuery(query, null);
        cursor = sql_db.rawQuery(query, new String[] {  res_namestr[i] , res_eventidstr[i] , get_res_starttime[i], get_res_endtime[i], get_res_location[i] });

        int noOfRecords= cursor.getCount();
        Log.d("No-of-Records :","" noOfRecords);

        if (noOfRecords> 0)
        {
//          Toast.makeText(context, "Table Already Exit", Toast.LENGTH_LONG).show();
        }
        else
        {
            //  record not exist
            ContentValues values = new ContentValues();
            values.put(DBHelper.E_NAME, res_namestr[i]);
            values.put(DBHelper.E_EVENT_ID, res_eventidstr[j]);
            values.put(DBHelper.E_STARTTIME, get_res_starttime[int_date]);
            values.put(DBHelper.E_ENDTIME, get_res_endtime[int_time]);
            values.put(DBHelper.E_LOCATION, get_res_location[int_loc]);

            sql_db.insert(DBHelper.TABLE, null, values);
        }
    }       
  

Комментарии:

1. Итак, в чем проблема?

2. не получил требования .. можете ли вы уточнить больше? вы хотите проверить, какие значения?

3. перед вставкой я хочу проверить, что значения уже доступны в таблице, если их там нет, значит, нужно вставить ….это мои значения —-cursor = sql_db.rawQuery(запрос, новая строка [] { res_namestr[i], res_eventidstr[i] , get_res_starttime[i], get_res_endtime [i], get_res_location[i] });

4. Итак, в чем проблема?

5. не вставляя новые значения

Ответ №1:

вы можете использовать метод insertWithOnConflict(). Если запись не существует, она вставит запись и вернет ее идентификатор, а если существует, то вернет идентификатор существующей записи.