Как обновить содержимое Sqlite? - PullRequest
0 голосов
/ 31 марта 2012

У меня есть одна таблица TABLE_EXAM . мне нужно обновить значение конкретной записи, передав
Я бы. Но мой код не может обновить код. я не понимаю, что не так в моем коде.
Пожалуйста, дайте мне подсказку или ссылку ... Заранее спасибо ..
Вот мой код для справки ....

public void updateExamDetails(int id,ObjectiveWiseQuestion owq)
{

    SQLiteDatabase db= this.getWritableDatabase();
    String selectQuery=("update exam set (examdetails, subchawise, examtype, noquestion, marks, subject_id, chapter_id) where exam_id ='"+ id +"'");
    Cursor cursor = db.rawQuery(selectQuery, null);

    if (cursor.moveToFirst())
    {
        do {
            ContentValues values = new ContentValues();
            values.put(COLUMN_NO_QUESTION, owq.getNoOfQuestion());
            values.put(COLUMN_MARKS, owq.getMarks());
            values.put(COLUMN_CHAP_ID, owq.getChapterId());
            values.put(COLUMN_SUB_ID, owq.getSubjectId());
            values.put(COLUMN_SUBCHAWISE,owq.getSubChapwise());
            values.put(COLUMN_EXAM_TYPE, owq.getExamType());
            values.put(COLUMN_EXAM_DETAILS, owq.getExamDetails());
            db.insert(TABLE_EXAM, null, values);
            db.close();

        } 
        while (cursor.moveToNext());
    }
}

Logcat имеет одно предупреждение ..

WARN/System.err(7227): android.database.sqlite.SQLiteException: near "(": syntax error: , while compiling: update exam set ( examdetails=?, subchawise=?, examtype=?, noquestion=?, marks=?, subject_id=?, chapter_id=? ) where exam_id ='1'

Ответы [ 2 ]

3 голосов
/ 31 марта 2012

Это стандартный способ сделать это:

String query = "UPDATE exam SET examdetails = ?, subchawise = ?, examtype = ?, noquestion = ?, marks = ?, subject_id = ?, chapter_id = ? WHERE exam_id = ?";

String[] params = new String[]{owq.getExamDetails(), owq.getSubChapwise(), owq.getExamType(), owq.getNoOfQuestion(), owq.getMarks(), String.valueOf(owq.getSubjectId()), String.valueOf(owq.getChapterId()), id};

db.rawQuery(query, params);
0 голосов
/ 31 марта 2012

Вы можете выполнить запрос напрямую как

b.execute("update exam set examdetails="yourvalue" and subchawise="your value" and examtype="your value" where exam_id ="id name");  

Я пробовал эту функцию для обновления строки таблицы sqlite.Я думаю, это хорошо для вас .. удачи ...

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