Android Sqlite,Toast显示已插入数据但未插入

时间:2019-03-18 02:48:25

标签: android sqlite

当我插入Sqlite时说“插入”时,我试图将数据插入Sqlite中,但是当我尝试对其中的数据进行修饰但数据库中没有数据时,我也检查了sqlite浏览器表中是否创建了但未插入数据< / p>

这是我的代码

fun inserData(user: User) {
        var database = writableDatabase
        var values = ContentValues()
        if (user.Description.equals("CLOTHES")) {
            values.put("TEXT", "${user.Category}")
            values.put("IMAGE", "${user.Image}")
            if (values !== null) {
                Toast.makeText(ctx, "Inserted", Toast.LENGTH_SHORT).show()
                database.insert(Cloth,null,values)
            }
        }
        database.close()
    }

关注数据

fun ClothData(): ArrayList<User> {
    var clothData = ArrayList<User>()
    var db = readableDatabase
    var cursor = db.rawQuery("SELECT*FROM $Cloth", arrayOf())
    if (cursor !== null && cursor.moveToFirst()) {
        do {
            var user = User()
            user.Description = cursor.getString(cursor.getColumnIndex("TEXT"))
            user.Image = cursor.getBlob(cursor.getColumnIndex("IMAGE"))
            clothData.add(user)
        } while (cursor.moveToNext())
    }
    return clothData
}

2 个答案:

答案 0 :(得分:0)

SQLiteDatabase.insert不保证插入行。您需要检查返回值> 0。

我总是使用insertOrThrow()来更好地捕获约束错误之类的异常。

答案 1 :(得分:0)

在您的插入方法中显示吐司存在问题。如果没有将数据插入database中。 Toast将显示成功。

尝试一下

如果数据插入成功与否,它将返回true/false

fun addTask(tasks:Tasks): Boolean {
        val db = this.writableDatabase
        val values = ContentValues()
        values.put(NAME, tasks.name)
        values.put(DESC, tasks.desc)
        values.put(COMPLETED, tasks.completed)
        val _success = db.insert(TABLE_NAME, null, values)
        db.close()
        return (Integer.parseInt("$_success") != -1)
    }