2015-02-25 3 views
-1

Если вы посмотрите на мой код внизу, у меня есть база данных со столбцом «used». Если это 1, это означает, что он не был использован, когда он используется, он устанавливает обновление числа до 0. Но когда все строки используют число 0, я хотел бы обновить, используя от 0 до 1 снова в все строки.Обновление базы данных строки - Android

я думать об использовании этого:

db.execSQL("UPDATE vprasanja SET used=1 WHERE kategorija=" + kategorija4 + ";"); 

Но где в моем коде я должен поставить его? Должен ли я что-то добавить? Это правильный код?

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(); 

    if(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; 

    } 

} 

ответ

0

Вместо

if(cd.moveToFirst()){ 

Вы должны использовать

if(cd.getCount() != 0){ 

Затем добавьте еще

//all values are used 
else { 
    db.execSQL("UPDATE vprasanja SET used=1 WHERE kategorija=" + kategorija4 + ";"); 
} 
+0

Работал как очарование! Спасибо! – Everlastinf

0

Попробуйте это, я думаю, что это поможет вам:

ContentValues args = new ContentValues(); 
args.put("used", 0); 
db.update(TABLE_NAME, args, "id" + "='" + idd2 + "'", null) > 0; 
Смежные вопросы