Problemet med din kode er ikke at du sender argumenterne som heltal (det gør du ikke), men at argumenterne ikke genkendes som TEXT
bogstaver, fordi de ikke er omgivet af enkelte anførselstegn, så SQLite tror, de er kolonnenavne.
Den anbefalede måde at overføre parametrene til rawQuery()
er dette:
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
}
Pladsholderne ?
vil tage deres værdier fra de tilsvarende elementer i arrayet, der er sendt som det 2. argument for rawQuery()
og du behøver ikke at sammenkæde de enkelte anførselstegn, så du undgår risikoen for sql-injektion.
Derefter og før returneringserklæringen skal du lukke både Cursor
og db
objekt.