2012-01-11 87 views
0

我在創建有效的sql查詢時遇到了問題。sqlite查詢中的字符無效?

我試圖檢查一個值,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; 
} 

而且隨着

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(); 
    } 
    }); 

我的錯誤它稱爲onClick的是 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+"\""但是,這不是爲我工作無論是。我怎樣才能使這個有效的數據庫查詢?

回答

1

你可以試試這個,可能會奏效。

Cursor mCursor = db.query(true, DATABASE_TABLE, new String[] { 
        KEY_URL 
        }, 
        "title=?", 
        title, 
        null, 
        null, 
        null, 
        null); 
+0

這樣做。謝謝。你能向我解釋這個問題嗎?什麼=?表示?這是檢查它的存在嗎? – r2DoesInc 2012-01-11 18:18:19

+0

問號表示該值將在selectionArgs中給出,而不是客棧選擇本身。你可以聚集在一起嗎?並給他們在選擇Args – nandeesh 2012-01-11 18:24:37

+0

其實我錯了,我打錯了代碼,它只是每次都返回負面。用你的代碼示例,它不是有效的java。 我的'title'是一個字符串。 [指南] Rootz Wiki的ROMs/Kernels/Tweaks/Theme's/Radios LTE Edition列表,並被多次聲明爲String – r2DoesInc 2012-01-11 18:31:14

0

不熟悉SQLite的,但我想嘗試單引號,像這樣:

"title" + "='" + title + "'", 
+0

這工作,但現在我有另一個問題。 'title = new String(title.replaceAll(「'」,「」));'需要刪除所有的撇號。他們也拋出了sql錯誤。這雖然改變了我的價值,但它每次都沒有匹配。 – r2DoesInc 2012-01-11 18:11:34