Если вы посмотрите на мой код внизу, у меня есть база данных со столбцом «used». Если это 1, это означает, что он не использовался, когда он используется, он устанавливает обновление числа до 0. Но когда все строки используют число 0, я хотел бы обновить значение, используемое от 0 до 1 снова. Как это сделать? Без понятия. Пробовал cd.getCount(), но не работал, попробовал и другие вещи, но снова не смог заставить его работать. Поэтому я спрашиваю, может ли кто-нибудь помочь мне и рассказать мне, что вводить в код. Спасибо!Как обновить базу данных, когда она пуста? Android
Это ошибка я получаю:
02-25 18: 46: 16,962: E/AndroidRuntime (9728): android.database.CursorIndexOutOfBoundsException: Индекс 0 просил, с размером 0
public void set(){
SQLiteDatabase db;
String vprasanje = "";
db=openOrCreateDatabase("baza.db",MODE_PRIVATE, null);
Cursor cd=db.rawQuery("SELECT * FROM vprasanja WHERE kategorija=" + kategorija4 + " AND used = 1 ORDER BY RANDOM() LIMIT 1", null);
cd.moveToFirst();
vprasanje = cd.getString(cd.getColumnIndex("text"));
//patch
String id2 = (cd.getString(cd.getColumnIndex("id")));
int idd2 = Integer.parseInt(id2);
db.execSQL("UPDATE vprasanja SET used=0 WHERE id =" + idd2 + ";");
beseda = (TextView) findViewById(R.id.textView3);
beseda.setText("");
beseda.setText(vprasanje);
db.close();
busy = 0;
}
Также хорошо убедитесь, что курсор не равно нулю: (! Кд = NULL && cd.moveToFirst()) ', если' { –
Могу ли я написать что-то вроде этого для обновления? db.execSQL ("UPDATE vprasanja SET used = 1 WHERE kategorija =" + kategorija4); @jvrodrigues – Everlastinf
Обновление работает только в том случае, если есть какая-то запись. Если нет, вам нужно вставить его. – jvrodrigues