在“?”附近:语法错误(代码1):,编译时:UPDATE和DELETE

时间:2016-04-28 23:52:16

标签: android sqlite

//deleting query

public void deleteFromQuestion(int questionId) {
    SQLiteDatabase db = this.getWritableDatabase();
    db.execSQL("delete from Questions where question_id =" + questionId);

}
//updating query
public void updateQuestion(String question, String answerOne, String answerTwo, String answerThree, String answerFour, String correctAnswer, int id) {
    SQLiteDatabase db = this.getWritableDatabase();

    ContentValues contentValues = new ContentValues();

    contentValues.put("question", question);
    contentValues.put("answer_one", answerOne);
    contentValues.put("answer_two", answerTwo);
    contentValues.put("answer_three", answerThree);
    contentValues.put("answer_four", answerFour);
    contentValues.put("correct_answer", correctAnswer);
    db.update("Questions", contentValues,"question_id ?", new String[]{String.valueOf(id)});

}

这是更新和删除的代码

//update button code
 updateBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            questionStr = String.valueOf(questionET.getText());
            answerOneStr = String.valueOf(ansOneET.getText());
            answerTwoStr = String.valueOf(ansTwoET.getText());
            answerThreeStr = String.valueOf(ansThreeET.getText());
            answerFourStr = String.valueOf(ansFourET.getText());
            correctAnswerStr = String.valueOf(correctAnsET.getText());
            if (questionStr == null || answerOneStr == null || answerTwoStr == null || correctAnswerStr == null) {
                Toast.makeText(getApplicationContext(), "Please Fill Fields ", Toast.LENGTH_SHORT).show();
            } else {
                questionManagerObject.updateQuestion(questionStr, answerOneStr, answerTwoStr, answerThreeStr, answerFourStr, correctAnswerStr, questionId);
                Toast.makeText(getApplicationContext(), "Question Updated ", Toast.LENGTH_SHORT).show();
            }
        }
    });

//delete button code
    deleteBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            questionManagerObject.deleteFromQuestion(questionId);
            Toast.makeText(getApplicationContext(), "Question deleted ", Toast.LENGTH_SHORT).show();

        }
    });

它应该用问题id删除并用它更新这些按钮当点击它时,它会删除或更新......这个错误,这段代码有什么问题?

1 个答案:

答案 0 :(得分:3)

你错过了添加" ="之前"?"。改为 -

db.update("Questions", contentValues,"question_id = ?", new String[]{String.valueOf(id)});