2011-12-19 105 views
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 

我曾嘗試另一種輸入也和其它每次給出錯誤的名字的第二個字。 任何人都可以幫助我嗎?

謝謝!

回答

0

嘗試KEY_NAME + "= \"" + name + "\""在database.query方法

+1

我值調用它從數據庫: lessonDb.updateEnrolled(cursor.getString(0),cursor.getString(1),就讀); 我試着在上面的查詢中使用KEY_NAME +「= \」「+ name +」\「」,但是我的應用程序只是卡住了 – Kat 2011-12-19 19:00:21

+0

你是什麼意思卡住?什麼是DDMS輸出? – silleknarf 2011-12-19 19:06:57

+1

它只是卡住了,但我發現問題了。它沒有做我想要的東西,但它不會再犯錯誤,也不會再被卡住了。但你的回答是對的。我的程序卡住的原因是因爲我在while循環中忘記了cursor.moveToNext()。我總是忘記那一個。笨。不管怎樣,謝謝!!! – Kat 2011-12-19 20:07:04