如何使用sqlite创建Kotlin登录名?

时间:2020-07-09 11:35:31

标签: android sqlite android-studio kotlin android-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()
            }

        }

1 个答案:

答案 0 :(得分:2)

{% if data.number|add:0 == iteration|add:"1" %} 是Java而不是sql的逻辑运算符。您必须使用&&

此外,在查询的AND子句中,您必须指定所有需要的列名,但不必指定。您仅指定列where

还应正确引用参数nombre_usuarioet_02.text,因此最终结果如下:

etp_03.text

但是执行此操作的正确方法是使用where column1 = 'value1' and column2 = 'value2' placholders并将?的第二个参数中的参数作为字符串数组传递。

因此更改为:

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() ) 有错字。