今天在使用sql语句删除数据时报了android.database.sqlite.SQLiteException: no such column:xxxxx,令人奇怪的是删除的数据是int类型的却没报错,代码如下
if ((list.get(j)).equals(list_delete.get(i))) {
db.execSQL("delete from TotalData where english =" + list.get(j).getEnglish());
list.remove(j);
break;
}
这是数据库的代码
public static final String CREATE_TOTALDATA = "create table Totaldata ("
+ "id INTEGER PRIMARY KEY AUTOINCREMENT, "
+ "chinese VARCHAR,"
+ "english VARCHAR)";
最后上网一查,在stackoverflow上找到类似答案了
是由于是字符串类型,所以要加单引号,于是代码更改如下:
if ((list.get(j)).equals(list_delete.get(i))) {
db.execSQL("delete from TotalData where english ='" + list.get(j).getEnglish()+"'");
list.remove(j);
break;
不得不说,StackOverflow真的是程序员必备啊,好几次国内找不到解决的问题都在这上面找到了