小编Gar*_*wen的帖子

使用带有多个子句的where子句删除SQLite Row

我一直在寻找并没有设法找到解决方案或工作示例,所以这里.

我已经建立了一个SQLite数据库,它有五列不同的字段,可以有效地为用户构建一个列表.列表中将有多个值相同,除了设置为自动增量的ROWID.

无论是用户还是程序都知道的ROWID一旦值已被输入到数据库中,所以我希望用户能够删除一行,如果它包含了其他领域的所有四个.

我的代码看起来像这样:

Database
            .delete(DATABASE_TABLE,
                    "KEY_DATE='date' AND KEY_GRADE='style2' AND KEY_STYLE='style' AND KEY_PUMPLEVEL='pumpLevel'",
                    null);
Run Code Online (Sandbox Code Playgroud)

但这并没有删除任何值.我几乎可以肯定这个命令的语法是罪魁祸首.

如何使用多个where子句格式化delete命令的where子句?

解决方案如下:

ourDatabase.delete(DATABASE_TABLE, "ROWID = (SELECT Max(ROWID) FROM "
            + DATABASE_TABLE + " WHERE " + "date=? AND grade=? AND "
            + "style=? AND pump_level=?)", new String[] { date, grade,
            style, pumpLevel });
Run Code Online (Sandbox Code Playgroud)

sqlite android where-clause sql-delete

10
推荐指数
2
解决办法
3万
查看次数

格式标志转换不匹配异常

希望这符合成为一个写得很好的问题的标准.我是编程的新手,我一直在尝试为Android上的登山者编写一个应用程序,根据他们当前培训期间的能力告诉用户他们应该攀爬什么.该应用程序要求用户输入他们的攀爬能力和墙壁长度.

我使用SharedPrefences数字编辑文本字段和列表为此设置了首选项菜单.最初我有一个类强制转换异常,因为我试图使用编辑文本中的字符串作为float/double/int(我尝试了所有三个!).

我已经将字符串转换为double,使用Double = Double.valueof(StringFromPrefernce) 它解决了这个错误,但现在产生了java.util.FormatFlagsConversionMismatchException: %o does not support ' '我无法找到解决方案的错误.

该应用程序允许用户最初访问首选项菜单,但是一旦他们设置了一些值,任何访问首选项菜单的尝试都将产生此强制关闭.

解:

在我的preferences.xml中,我引用了一个字符串.该字符串包含%符号,该符号负责关闭力.删除%符号修复了问题.

java android

5
推荐指数
3
解决办法
9546
查看次数

标签 统计

android ×2

java ×1

sql-delete ×1

sqlite ×1

where-clause ×1