2012-01-20 69 views
1

時發生SqlException錯誤,此錯誤發生。在光標行上使用

Error: 

Caused by: android.database.sqlite.SQLiteException: near ")": syntax 
error: , while compiling: SELECT value FROM system WHERE (name=) ORDER BY name 

光標看起來是這樣的:

Cursor c = getContentResolver().query(Uri.parse("content://settings/system"), 
values, "name=", fields, "name"); 
    if (c != null) { 
     c.moveToFirst(); 
     long lvalue = c.getLong(0); 
     if (lvalue > 0) { 
      m_ScreenSaverDelay = lvalue; 
     } 

回答

3

試試這個:

Cursor c = getContentResolver().query(Uri.parse("content://settings/system"), values, "name= '"+ theNameyouArelookingFor +"'", fields, "name");  

查詢應該評估爲:

SELECT value FROM system WHERE (name='ThenameYouAreLookingFor') ORDER BY name 
+0

然後你.. !!!!!! – SilentKiller

+0

沒問題。如果它幫助你接受答案。享受編程。 – kosa

+0

你確定..... !!!!!! – SilentKiller

3

Documentation狀態:

您可以在選擇中包括?s,它們將按照selectionArgs中的值 以它們出現在選擇中的順序取代。 這些值將被綁定爲字符串。

所以儘量"name=?s"代替"name="最終將被評估的東西相當於

"name=\"" + fields[0] + "\""

(不考慮數據輸入的報價考慮在這個例子中這將(或應該 )由DB引擎完成)。

+0

然後你.. !!!!!! – SilentKiller

+1

不客氣。 – JimmyB