0
내가 잘못하고 있는지 확실하지 않지만 테이블의 열에있는 단일 정수 값을 0에서 1로 업데이트하려고합니다. 데이터베이스를 만들 때 실제 활동에, 내가 뭘,하나의 열을 업데이트하면 sqlite 구문 오류가 발생합니다.
for (int i = 0; i < setups.length; i++) {
ContentValues values = new ContentValues();
values.put(JokeDbContract.TblJoke.COLUMN_NAME_SETUP, setups[i]);
values.put(JokeDbContract.TblJoke.COLUMN_NAME_PUNCHLINE, punchlines[i]);
values.put(JokeDbContract.TblJoke.COLUMN_NAME_USED, 0);
db.insert(JokeDbContract.TblJoke.TABLE_NAME, null, values);
}
다음 :
private void findNewJoke() {
JokeDb jokeDb = JokeDb.getInstance(this);
SQLiteDatabase theDb = jokeDb.getDB();
String selection = JokeDbContract.TblJoke.COLUMN_NAME_USED + "=" + 0;
// Query database for a joke that has not been used, update the fields
// theJoke and thePunchline appropriately
String[] columns = {JokeDbContract.TblJoke._ID,
JokeDbContract.TblJoke.COLUMN_NAME_PUNCHLINE,
JokeDbContract.TblJoke.COLUMN_NAME_SETUP,
JokeDbContract.TblJoke.COLUMN_NAME_USED};
Cursor c = theDb.query(JokeDbContract.TblJoke.TABLE_NAME, columns, selection,
null, null, null, null);
if (c.moveToFirst() == false) {
Toast.makeText(this, R.string.error_retrieving_joke, Toast.LENGTH_LONG).show();
Log.e(getString(R.string.app_name),"No jokes retreived from DB in JokeActivity.findNewJoke()!");
}
else {
ContentValues values = new ContentValues();
theSetup = c.getString(c.getColumnIndexOrThrow(JokeDbContract.TblJoke.COLUMN_NAME_SETUP));
thePunchline = c.getString(c.getColumnIndexOrThrow(JokeDbContract.TblJoke.COLUMN_NAME_PUNCHLINE));
String updateSelection = JokeDbContract.TblJoke.COLUMN_NAME_SETUP + "=" + theSetup;
values.put(JokeDbContract.TblJoke.COLUMN_NAME_USED, 1);
theDb.update(JokeDbContract.TblJoke.TABLE_NAME, values, updateSelection, null);
}
}
I 업데이트에 오류가 받고 있어요 :
, 내가 사용하는 제로 컬럼의 모든 값을 설정java.lang.RuntimeException: .... while compiling: UPDATE jokes SET used=?
WHERE setup=Why do programmers always mix up Halloween and Christmas?
사용 된 열에 대해 실제 값을 설정하지 않은 것처럼 보입니다. 프로그램이 궁극적으로하는 일은 사이클 = 농담 = 중고품 = 0이고, 그 다음에 세트를 보았을 때 1로 사용됩니다. 따라서 쿼리는 아직 사용되지 않은 농담 만 가져옵니다. 나는 단순한 무언가를 놓치고 있다는 느낌을 가지고있다.
그게 전부입니다. 여기에서는 SET 절을 사용하여 구문 오류가 발생하여 값이 잘못 설정되었다고 생각했습니다. 당신의 도움을 주셔서 감사합니다. –