2012-01-11 26 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