Android sqlite通过字符串为条件执行删除某一记录的问题
public boolean deleteitem(String title){
return db.delete(DATABASE_TABLE, KEY_TITLE +"=" + title , null)>0;
}
其中Key_Title 是我的表中的列,我的表因为id autoincrement每次建立完在执行query时候都提示我没有这样的column,所以我的表只有两列。
Title | Content
12345 xxx
12345f xxx
wwwa xxx
当我删除12345这条记录时候可行,但是12345f就立马出错(数字+字符)
错误原因是07-09 02:55:13.792: E/AndroidRuntime(802): android.database.sqlite.SQLiteException: unrecognized token: "12345f": , while compiling: DELETE FROM contentinfo1 WHERE title=12345f
如果是纯字母,又出现另一个错误 比如我插入一个title 为wwwa 的记录之后
07-09 07:48:29.464: E/AndroidRuntime(351): android.database.sqlite.SQLiteException: no such column: wwwa: , while compiling: DELETE FROM contentinfo1 WHERE title=wwwa
答案:你的title是
NVARCHAR
的吧。。
应该是
return db.delete(DATABASE_TABLE, KEY_TITLE +"=‘" + title+“’” , null)>0;
title要。。加单引号、
其他:return db.delete(DATABASE_TABLE, KEY_TITLE +"=‘" + title+“’” , null)>0;
title要添加单引号。
其次注意列名称是Title 不是 title. 有没有先调用打开Sqlite3的databasehepler.getwrite...()这个方法?
上一个:sqlite查询条件参数为空怎么办
下一个:android 程序碰到问题,很简单的一个程序,从sqlite数据库里面查找数据,点击按钮后获得相应数据