SQLite查询异常Android Studio语法错误代码1

时间:2016-04-02 14:20:26

标签: android android-studio sqlite android-sqlite

所以我试图为我的Android应用程序构建一个搜索方法,并且我一直遇到这个错误

android.database.sqlite.SQLiteException: near "Prefect": syntax error (code 1): 
while compiling: SELECT * FROM Person WHERE name = Ford Prefect

这是我运行查询的方法

public Cursor findUser(String uName)
{
    Cursor res = myDatabase.query("Person WHERE name = "+uName+"",
                                         null,null,null,null,null,null);

    return res;
}

String uName来自此方法

public void onClick(View v)
{
    EditText uNameField = (EditText)findViewById(R.id.editText);
    String userName=uNameField.getText().toString();

    switch (v.getId())
    {
        case R.id.button:
            Intent myIntent = new Intent(FindUser.this,
                    Results.class);
            myIntent.putExtra("uName", userName);
            startActivity(myIntent);
            break;
    }

}

任何人都可以帮助我获取此错误吗?一切似乎都很好,我只是不明白为什么它停在姓氏上。但用户名的格式正确如此"福特Prefect"

1 个答案:

答案 0 :(得分:1)

传递值时应该有单引号.ie,你的查询应该以这种方式传递&#34; * SELECT * FROM Person WHERE name =&#39; Ford Prefect&#39 ;; * < /强>&#34 ;.我在下面编辑了你的问题。

public Cursor findUser(String uName) {
    Cursor res = myDatabase.query("Person WHERE name = '"+uName+"';",
                                         null,null,null,null,null,null);
    return res;
}