簡體   English   中英

如何使用 sqlite 創建 kotlin 登錄?

[英]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.textetp_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM