1. 程式人生 > >android.database.sqlite.SQLiteException: unrecognized token: "266_1"

android.database.sqlite.SQLiteException: unrecognized token: "266_1"

android.database.sqlite.SQLiteException: unrecognized token: "266_1"
出現上面異常,檢視log,發現是sql語句出了問題:
public String getOneFaceFeature(String faceCountId) {
    Cursor cursor = db.rawQuery("select id," + FACE_FEATURE + " from " + TAB_FACE_FEATURE +" where " + FACE_COUNT_ID + " = " + faceCountId, null);

異常資訊是不能識別資訊。發現查詢條件是String型別。而在sql語法中字串是要加單引號‘’的,否則無法識別。當然int型別就不需要了。

修改如下:

 Cursor cursor = db.rawQuery("select id," + FACE_FEATURE + " from " + TAB_FACE_FEATURE +" where " + FACE_COUNT_ID + " = '" + faceCountId+"' ", null);

問題解決。

同時要注意,單引號和字串之間不能有空格,否則不是原來的值,會報android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0異常。見我上篇部落格。