Android SQLite特定的表行删除

时间:2016-11-13 20:05:45

标签: java android sqlite

我在Android设备上从我的SQLite数据库中删除特定用户时遇到了一些问题。我做了一个简单的方法来删除一个表行,其中table.name等于第一个输入,table.surname等于第二个输入。

以下是我的方法:

void deleteUser(db_operations opt, String name, String surname) {
    SQLiteDatabase sdb = opt.getWritableDatabase();
    if(validate(name, surname) == true) {
        name = name.replaceAll("\\s+",""); surname = surname.replaceAll("\\s+","");
        try {
            String DELETE_USER = "DELETE FROM " + tb_users.tb_name + " WHERE " + tb_users.name + "='" + name + "' AND " + tb_users.surname + "='" + surname + "'";
            sdb.execSQL(DELETE_USER);
            sdb.close();
            System.out.println("Deletion SUCCESS!");
        } catch (SQLException e) {
            System.out.println("Deletion FAILED!");
        }
    }
}

如果我执行一个DELETE FROM myTableName语句,每个用户都会从表格和ScrollView中删除,这是好的,但如果我执行上述方法删除特定用户,输出会给出:

  

删除成功!

但我的桌子仍有记录。该记录也保留在我的ScrollView列表中(使用LinearLayouts制作)。该列表是动态构建的。在我的SQLite执行开始之前,我已经检查过数据是否正常,看起来没问题。我无法弄清楚为什么我的方法不起作用。也许我错过了什么。

1 个答案:

答案 0 :(得分:0)

(代表问题作者发布)

我知道了。我发现我的验证方法一直都在返回 false 输出(我在其中一种情况下输入错误),这就是为什么我的方法永远没有执行机会的原因。感谢您提醒您使用日志。能够追踪我的错字。