1
我有一個錯誤,當我調用這個方法:的Android SQLite的語法錯誤選擇
public void updateEnrolled(String name, String group, boolean enrolled)
{
Cursor cursor = database.query(true, DATABASE_TABLE, new String[] {KEY_ROWID,
KEY_DATE, KEY_PROFESSOR, KEY_LOCATION, KEY_HOURSTART, KEY_HOUREND, KEY_WEEK}, KEY_NAME + "=" +name, null, null, null, null, null);// + " AND " + KEY_GROUP + "=" + group
cursor.moveToFirst();
while(!cursor.isAfterLast())
{
long rowId = cursor.getInt(cursor.getColumnIndex(KEY_ROWID));
String date = cursor.getString(cursor.getColumnIndex(KEY_DATE));
String professor = cursor.getString(cursor.getColumnIndex(KEY_PROFESSOR));
String location = cursor.getString(cursor.getColumnIndex(KEY_LOCATION));
String hourStart = cursor.getString(cursor.getColumnIndex(KEY_HOURSTART));
String hourEnd = cursor.getString(cursor.getColumnIndex(KEY_HOUREND));
int week = cursor.getInt(cursor.getColumnIndex(KEY_WEEK));
updateLesson(rowId,name,date,professor,location,hourStart,hourEnd,week,group,enrolled);
}
cursor.close();
}
我得到的錯誤是:
android.database.sqlite.SQLiteException: near "Electronics": syntax error: , while compiling: SELECT DISTINCT _id, date, professor, location, hourStart, hourEnd, week FROM lesson WHERE name=Analog Electronics: lab
我曾嘗試另一種輸入也和其它每次給出錯誤的名字的第二個字。 任何人都可以幫助我嗎?
謝謝!
我值調用它從數據庫: lessonDb.updateEnrolled(cursor.getString(0),cursor.getString(1),就讀); 我試着在上面的查詢中使用KEY_NAME +「= \」「+ name +」\「」,但是我的應用程序只是卡住了 – Kat 2011-12-19 19:00:21
你是什麼意思卡住?什麼是DDMS輸出? – silleknarf 2011-12-19 19:06:57
它只是卡住了,但我發現問題了。它沒有做我想要的東西,但它不會再犯錯誤,也不會再被卡住了。但你的回答是對的。我的程序卡住的原因是因爲我在while循環中忘記了cursor.moveToNext()。我總是忘記那一個。笨。不管怎樣,謝謝!!! – Kat 2011-12-19 20:07:04