我在创建有效的sql查询时遇到问题。
我试图检查我的数据库中是否存在值title
。
这是我的适配器类中创建查询的方法。
public Cursor byTitle(String title) throws SQLException {
Cursor mCursor = db.query(true, DATABASE_TABLE, new String[] {
KEY_URL
},
"title" + "=" +title,
null,
null,
null,
null,
null);
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
}
而它的onClick与
holder.fb.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
final FDBAdapter db = new FDBAdapter(ctx);
title = holder.itemName.getText().toString();
db.open();
Cursor c = db.byTitle(title);
if (c.getCount()>0) {
while (c.moveToNext()) {
Toast.makeText(ctx, "yup! " + c.getString(0), Toast.LENGTH_LONG).show();
}
} else {
Toast.makeText(ctx, "nope! " + holder.itemName.getText().toString(), Toast.LENGTH_LONG).show();
}
c.close();
db.close();
}
});
我的错误是
android.database.sqlite.SQLiteException: near "Rootz": syntax error: , while compiling: SELECT DISTINCT url FROM favs WHERE title=[Guide] Rootz Wiki's List of ROMs / Kernels / Tweaks / Theme's / Radios LTE Edition
我尝试像
title
那样在"\""+title+"\""
周围加上引号,但这对我也不起作用。如何使它成为有效的数据库查询? 最佳答案
你可以尝试一下,可能会工作。
Cursor mCursor = db.query(true, DATABASE_TABLE, new String[] {
KEY_URL
},
"title=?",
title,
null,
null,
null,
null);