sqlite 语法错误
做android应用,写ContentProvider提供SqliteDatabase操作时,调试过程中出现以下错误: 02-07 16:37:41.825: W/System.err(12044): android.database.sqlite.SQLiteException: near ".905": syntax error:,while compiling: SELECT start_time,run_mode,duration_time,_id,reservation_locator FROM reservation_table WHERE (reservation_locator=0.1.905) ORDER BY _id ASC 错误提示为语法错误。 仔细检查,是where;子句有错误。 代码builer.appendWhere(ReservationMetadata.ReservationTable.LOCATOR + "=" + uri.getPathSegments().get(1)); 因此,改为builer.appendWhere(ReservationMetadata.ReservationTable.LOCATOR + " LIKE " + uri.getPathSegments().get(1)); 继续调试,仍出错: 02-07 16:46:45.465: W/System.err(12294): android.database.sqlite.SQLiteException: near ".905": syntax error:,reservation_locator FROM reservation_table WHERE (reservation_locator LIKE 0.1.905) ORDER BY _id ASC 意味着,like子句的写法有问题,继续查资料,原来如此: SELECT * FROM Cars WHERE Name Like 'en' 也即,Like后面的字符串需要用单引号括起来,Ok,继续更正: builer.appendWhere(ReservationMetadata.ReservationTable.LOCATOR + " LIKE '" + uri.getPathSegments().get(1) + "'"); 搞定,得到期望的结果。 以上,作为数据库操作调试的日志。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |