光标使用时发生SqlException错误

时间:2012-01-20 12:24:13

标签: android cursor

在光标线上发生此错误。

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:3)

Documentation州:

  

您可以在选择中包含?,它将被值替换   来自selectionArgs,按它们在选择中出现的顺序排列。   这些值将绑定为字符串。

因此,请尝试使用"name=?s"代替"name=",最终将评估为等同于

的内容

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

(在此示例中不会引用数据输入,而数据库引擎将完成(或)。