在Android Studio中使用SQLite执行多个WHERE子句的查询

在Android Studio中使用SQLite执行多个WHERE子句的查询,android,Android,嗨,我是Android开发者的新手,所以我有一个查询,它将查看我的表,并检查给定用户名和密码的某个记录是否存在,现在我有了这个 public user getLOGusr(String uname, String pass) { SQLiteDatabase db = this.getReadableDatabase(); Cursor cursor = db.query(TABLE_USRS, new String[]{KEY_ID,KEY_NAME,KEY_E_ADDR,KE

嗨,我是Android开发者的新手,所以我有一个查询,它将查看我的表,并检查给定用户名和密码的某个记录是否存在,现在我有了这个

public user getLOGusr(String uname, String pass)
{
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.query(TABLE_USRS, new String[]{KEY_ID,KEY_NAME,KEY_E_ADDR,KEY_PASS} , KEY_NAME + "=?", KEY_PASS + "=?",
                    new String[]{String.valueOf(uname), String.valueOf(pass)});

    return somestuff;
}

但它有很多错误。我的代码有什么改进吗?非常感谢

像这样的方法应该会奏效:

public user getLOGusr(String uname, String pass)
{
    SQLiteDatabase db = getReadableDatabase();

    // replace * with comma-separated column names
    // if you do not wish to return all columns
    String select = "SELECT * FROM " + TABLE_USRS + " WHERE " + KEY_NAME + " = ? AND " + KEY_PASS + " = ?";

    Cursor cursor = db.rawQuery(select, new String[]{uname, pass});

    // get the data from the Cursor and return stuff
}

像这样的方法应该会奏效:

public user getLOGusr(String uname, String pass)
{
    SQLiteDatabase db = getReadableDatabase();

    // replace * with comma-separated column names
    // if you do not wish to return all columns
    String select = "SELECT * FROM " + TABLE_USRS + " WHERE " + KEY_NAME + " = ? AND " + KEY_PASS + " = ?";

    Cursor cursor = db.rawQuery(select, new String[]{uname, pass});

    // get the data from the Cursor and return stuff
}
试试这个:

String[] tableColumns = new String[] {
  KEY_ID,KEY_NAME,KEY_E_ADDR,KEY_PASS
};
String whereClause = KEY_NAME + " = ? AND " + KEY_PASS  + " = ?";
String[] whereArgs = new String[] {
  uname,
  pass
};
Cursor c = db.query(TABLE_USRS, tableColumns, whereClause, whereArgs, null, null, null);
试试这个:

String[] tableColumns = new String[] {
  KEY_ID,KEY_NAME,KEY_E_ADDR,KEY_PASS
};
String whereClause = KEY_NAME + " = ? AND " + KEY_PASS  + " = ?";
String[] whereArgs = new String[] {
  uname,
  pass
};
Cursor c = db.query(TABLE_USRS, tableColumns, whereClause, whereArgs, null, null, null);

当两个参数都是
String
s时调用
String.valueOf()
有什么意义?当两个参数都是
String
s时调用
String.valueOf()
有什么意义?