
我试图从我的sqlite数据库中删除几行,如下所示:
dbutilsObj.delete(EngineUtiReport.table_name, EngineUtiReport.Columns.KEY_ENGINE_UTI_UNIX_TIME + dbutils.IS_LESS_THAN, new String[] { String.valueOf(nDaysoldUnixTime) });在上面的代码中,nDayoldTimeInMills = 1429963811949和dbutils.IS_LESS_THAN =“<”.但我得到这个语法错误异常,我只是无法弄清楚我做错了什么:
androID.database.sqlite.sqliteException: near "<": Syntax error (code 1): , while compiling: DELETE FROM engine_utilization_report WHERE unix_time <at androID.database.sqlite.sqliteConnection.nativePrepareStatement(Native Method)at androID.database.sqlite.sqliteConnection.acquirePreparedStatement(sqliteConnection.java:1113)at androID.database.sqlite.sqliteConnection.prepare(sqliteConnection.java:686)解决方法:
使用参数化查询时,您需要指定将参数插入查询的位置.你这样做是通过添加?参数应该去哪里.现在看一下异常中的查询,看起来很明显是错的:
DELETE FROM engine_utilization_report WHERE unix_time <注意unix_time<在末尾?的?不见了.正确的查询应如下所示:
DELETE FROM engine_utilization_report WHERE unix_time < ?要修复错误,您只需要添加?在where子句的末尾,像这样:
dbutilsObj.delete(EngineUtiReport.table_name, EngineUtiReport.Columns.KEY_ENGINE_UTI_UNIX_TIME + dbutils.IS_LESS_THAN + "?", new String[] { String.valueOf(nDaysoldUnixTime) }); 总结 以上是内存溢出为你收集整理的android – 删除查询时“<”附近的SQLiteException全部内容,希望文章能够帮你解决android – 删除查询时“<”附近的SQLiteException所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)