O problema com seu código não que você passa os argumentos como Integer (você não passa), mas que os argumentos não são reconhecidos como
TEXT
literais porque não estão entre aspas simples, então o SQLite pensa que são nomes de colunas.A maneira recomendada de passar os parâmetros para
rawQuery()
é isto: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
}
Os espaços reservados
?
pegará seus valores dos itens correspondentes do array passado como o segundo argumento de rawQuery()
e você não precisa concatenar as aspas simples para evitar o risco de injeção de sql.Depois disso e antes da instrução return você deve fechar tanto o
Cursor
e o db
objeto.