2012-03-31 2 views
-1

Ich habe eine Tabelle TABLE_EXAM. Ich muss den Wert eines bestimmten Datensatzes aktualisieren, indem ich
ID übergeben. Aber mein Code ist nicht in der Lage, den Code zu aktualisieren. Ich verstehe nicht, was in meinem Code falsch ist.
Bitte geben Sie mir einen Hinweis oder Referenz ... Vielen Dank im Voraus ..
hier als Referenz mein Code ....Wie aktualisiert man den Inhalt von Sqlite?

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 eine Warnung haben ..

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' 
+0

Ich kann nur raten hier, aber ich würde erwarten, dass Ihre Abfrage string, um einige Parameter zum Binden zu benötigen (normalerweise etwas wie 'set examdetails = ?, subchwise = ?, ...'). – bdares

+0

nein..es funktioniert nicht –

Antwort

3

Dies ist ein Standard Art und Weise tun:

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

es funktioniert nicht –

+0

ohh sorry, ich habe gerade diese 'String [] params' behoben. Siehe meine aktualisierte Antwort. Wenn immer noch nicht Arbeit, dann schreibe mir den Fehler auch – waqaslam

+0

es Fehler auf owq.getChapterId, owq.getSubjectId, die Integer –

-2

Sie können Abfrage direkt als

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

ausführen Ich habe diese Funktion für die Aktualisierung der SQLite Ta versucht blöde Reihe. Ich denke, das ist dir gut funktionieren .. viel Glück ...

+0

aber ich muss viele Spalten auf einmal aktualisieren .... dann? –

+0

b.execute ("update exam examdetails =" "yourvalue" und subchwise = "Dein Wert" und examptype = "Dein Wert" wo wo exam_id = "id name"); –

+0

Hallo bitte folgen Sie dieser Abfrage –