SQLite Selection Args in Where Clause



我正在向Android应用程序中的DBHelper类发送以下查询:

Cursor c = null;
String tempLastName=lnameText.getText().toString();
String tempFirstName=fnameText.getText().toString();
c=myDbHelper.getProvider(tempLastName.toString(),tempFirstName.toString());

在getProvider方法的DBHelper类中,我有以下代码:

public Cursor getProvider(String lname,String fname) throws SQLException {
String tempSearchStr=KEY1_LASTNAME+"='lname'"+"AND"+KEY1_FIRSTNAME+"='fname'";
String sql="Select * from ProvidersSummary Where LastName='lname' AND Where FirstName='fname'";
Cursor mCursor=myDataBase.rawQuery("Select * from ProvidersSummary Where LastName='lname' AND  FirstName='fname'",null);
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
}

如果我只传递"lname"字符串,我将从DB返回一条记录,但是,当同时发送"lnname"one_answers"fname"时,我没有得到记录。

我认为这是有字符串的东西,但我只是在尝试了每一个组合后才能弄清楚。

任何帮助或建议都将不胜感激。

public Cursor getProvider(String lname,String fname) throws SQLException {
    String tempSearchStr=KEY1_LASTNAME+"='lname'"+"AND"+KEY1_FIRSTNAME+"='fname'";
    String sql="Select * from ProvidersSummary Where LastName='lname' AND Where FirstName='fname'";
    Cursor mCursor=myDataBase.rawQuery("Select * from ProvidersSummary Where LastName='lname' AND  FirstName='fname'",null);

首先,在此处删除tempSearchStrsql。它们未被使用并且存在语法问题。

其次,将参数值传递给查询,而不是直接查询fnamelname。将查询更改为:

Cursor mCursor=myDataBase.rawQuery("Select * from ProvidersSummary Where LastName=? AND  FirstName=?", new String[] { lname, fname });