2011-12-19 108 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