Problemet med din kod är inte att du skickar argumenten som heltal (det gör du inte), men att argumenten inte känns igen som TEXT
bokstaver eftersom de inte är omslutna av enkla citattecken, så SQLite tror att de är kolumnnamn.
Det rekommenderade sättet att skicka parametrarna till rawQuery()
är detta:
fun userPresent (user: String, pass: String): Boolean {
val db = writableDatabase
val query = "select * from $TABLE_NAME where username = ? and password = ?"
val cursor = db.rawQuery(query, arrayOf(user, pass))
val result = cursor.count > 0
cursor.close()
db.close()
return result
}
Platshållarna ?
kommer att ta sina värden från motsvarande objekt i arrayen som skickas som det andra argumentet för rawQuery()
och du behöver inte sammanfoga de enskilda citattecken så att du undviker risken för sql-injektion.
Efter det och före retursatsen måste du stänga både Cursor
och db
objekt.