我将以下查询发送到Android应用中的DBHelper类:
Cursor c = null;
String tempLastName=lnameText.getText().toString();
String tempFirstName=fnameText.getText().toString();
c=myDbHelper.getProvider(tempLastName.toString(),tempFirstName.toString());
在我的DBHelper类中,getProvider方法我有以下代码:
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返回一条记录,但是,当发送“lname”和“fname”时,我没有得到记录。
我认为它是字符串的东西,但我可以在尝试每个组合后弄清楚它。
任何帮助或指示表示赞赏。
答案 0 :(得分:0)
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);
首先,请在此处删除tempSearchStr
和sql
。它们未被使用且存在语法问题。
其次,将参数值传递给查询,而不是从字面上查询fname
和lname
。将查询更改为:
Cursor mCursor=myDataBase.rawQuery("Select * from ProvidersSummary Where LastName=? AND FirstName=?", new String[] { lname, fname });