Android 使用Kotlin在SQLite中查询时出现问题
我正在Kotlin使用SQLite数据库进行练习,我想在注册后查阅信息 问题是,当我按下按钮咨询时,我得到的是我放在吐司中的信息,而不是我登记的信息Android 使用Kotlin在SQLite中查询时出现问题,android,kotlin,intellij-idea,jetbrains-ide,Android,Kotlin,Intellij Idea,Jetbrains Ide,我正在Kotlin使用SQLite数据库进行练习,我想在注册后查阅信息 问题是,当我按下按钮咨询时,我得到的是我放在吐司中的信息,而不是我登记的信息 class QLiteOpenHelper(context: Context, name: String, factory: SQLiteDatabase.CursorFactory?, version: Int) : SQLiteOpenHelper(context, name, factory, version) { override
class QLiteOpenHelper(context: Context, name: String, factory: SQLiteDatabase.CursorFactory?, version: Int) : SQLiteOpenHelper(context, name, factory, version) {
override fun onCreate(db: SQLiteDatabase) {
db.execSQL("create table articulos(codigo int primary key, descripcion text,precio real)")
}
override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
}
}
bt_registrar.setOnClickListener {
//Llamr a la base de datos
val admin = QLiteOpenHelper(this, "Administracion", null, 1)
val bd = admin.writableDatabase
//Llamamos los datos
val registro = ContentValues()
registro.put("Codigo", et_codigo.text.toString())
registro.put("Descripcion", et_name.text.toString())
registro.put("Articulo", et_precio.text.toString())
//Insertar los datos en la tabla articulos
bd.insert("artculos", null, registro)
bd.close()
et_codigo.setText("")
et_name.setText("")
et_precio.setText("")
Toast.makeText(this, "Los datos se han cargado", Toast.LENGTH_SHORT).show()
}
bt_producto_codigo.setOnClickListener {
val codigo = et_codigo.text.toString().toInt()
val admin = QLiteOpenHelper(this, "administracion", null, 1)
val bd = admin.writableDatabase
val fila = bd.rawQuery("select descripcion,precio from articulos where codigo=$codigo", null)
if (fila.moveToFirst()) {
et_name.setText(fila.getString(0))
et_precio.setText(fila.getString(1))
} else
Toast.makeText(this, "No existe un artículo con dicho código", Toast.LENGTH_SHORT).show()
bd.close()
}
你的插入没有通过
registro.put("Codigo", et_codigo.text.toString())
“Codigo”必须与
db.execSQL("create table articulos(codigo int primary key, descripcion text,precio real)")
匹配所有字段的大小写和类型
最佳实践是对键使用常量。例如:
const val ARTICULOS_KEY ="articulos"
const val CODIGO_KEY ="codigo"
...
db.execSQL("CREATE TABLE $ARTICULOS_KEY($CODIGO_KEY INT PRIMART....)
...
registro.put(CODIGO_KEY, et_codigo.text.toString().toInt())
当我按下按钮咨询。。。。这是代码的哪一部分?编辑您的问题并澄清。当我按下按钮时(bt_producto_codigo.setOnClickListener)