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