我想用android的SQLiteDatabase类的本机更新方法更新我的sql lite数据库.
ContentValues dataToInsert = new ContentValues(); dataToInsert.put("name", "flo"); dataToInsert.put("location", "flotown"); String where = "id" + "=" + id; try{ db.update(DATABASE_TABLE, dataToInsert, where, null); } catch (Exception e){ String error = e.getMessage().toString(); }
但是我得到以下错误:android.database.sqlite.SQLiteException:near"15":语法错误:,同时编译:UPDATE mytable SET location = ?, name =?WHERE id = 2010-09-21 15:05:36.995
我不知道应该是什么问题.不知何故,值不会到达sql语句.我使用insert方法做的几乎一样,并且工作得非常好.
很多,弗洛里安
您正在使用更新功能错误.它应该是这样的:
String where = "id=?"; String[] whereArgs = new String[] {String.valueOf(id)}; db.update(DATABASE_TABLE, dataToInsert, where, whereArgs);
whereArgs数组中的字符串替换为每个'?' 在where变量中.
即.如果你有where ="name =?AND type =?那么第一个'?' 将由whereArgs [0]替换,而第二个由whereArgs [1]替换.