[英]How to create kotlin login with sqlite?
如何使用 sqlite 在 koltin 中創建登錄名。
用戶注冊
bt_204.setOnClickListener {
val admin = AdminSQliteOpenHelper(this, "administracion",null,1)
val bd = admin.writableDatabase
val registro = ContentValues()
registro.put("nombre_usuario", et_nombre_201.text.toString())
registro.put("clave1", et_pasword_204.text.toString())
registro.put("clave2",et_paword_203.text.toString() )
bd.insert("usuario", null , registro)
bd.close()
et_nombre_201.setText("")
et_paword_203.setText("")
et_pasword_204.setText("")
Toast.makeText(this,"Usuarios registrado correctamente", Toast.LENGTH_SHORT).show()
val intent = Intent (this,MainActivity::class.java)
startActivity(intent)
}
主要活動
試試這個,但應用程序被破壞了(我是初學者)
bt_ingresar_04.setOnClickListener {
val admin = AdminSQliteOpenHelper(this, "administracion", null, 1)
val bd = admin.writableDatabase
val fila = bd.rawQuery(
"select nombre_usuario,clave1 from usuario where nombre_usuario=${et_02.text} && ${etp_03.text}"
null
)
if (fila.moveToFirst()) {
val intent = Intent(this, MainActivity_03::class.java)
startActivity(intent)
} else {
Toast.makeText(this, "Usuario no registrado", Toast.LENGTH_SHORT).show()
}
}
&&
是 Java 的邏輯運算符,但不是 sql 的邏輯運算符。 您必須使用AND
。
同樣在查詢的where
子句中,您必須指定所有需要的列名,但您沒有。 您僅指定列nombre_usuario
。
參數et_02.text
和etp_03.text
也應該被正確引用,所以最終結果是這樣的:
where column1 = 'value1' and column2 = 'value2'
但是這樣做的正確方法是使用?
rawQuery()
的第二個參數中的參數作為字符串數組傳遞。
所以改成這樣:
val fila = bd.rawQuery(
"select nombre_usuario, clave1 from usuario where nombre_usuario = ? and column_password = ?",
arrayOf(et_02.text, etp_03.text)
)
將column_password
替換為存儲密碼的列的名稱。
此外,在bt_204.setOnClickListener
中,在這一行:
registro.put("clave2",et_paword_203.text.toString() )
可能et_paword_203
有錯字。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.