我一直在尝试更新特定行已有一段时间了,看来有两种方法可以做到这一点。根据我的阅读和尝试,你可以使用:
execSQL(String sql) 方法
execSQL(String sql)
或者:
update(String table, ContentValues values, String whereClause, String[] whereArgs) 方法。
update(String table, ContentValues values, String whereClause, String[] whereArgs)
(让我知道这是否不正确,因为我是android新手,还是SQL新手。)
因此,让我了解我的实际代码。
myDB.update(TableName, "(Field1, Field2, Field3)" + " VALUES ('Bob', 19, 'Male')", "where _id = 1", null);
我正在努力做到这一点:
更新主键(_id)等于1的Field1,Field2和Field3。
_id
Eclipse在“更新”一词的正下方给了我一条红线,并给出了以下解释:
SQLiteDatabase类型的方法update(String,ContentValues,String,String [])不适用于参数(String,String,String,null)
我猜我没有正确分配ContentValues。谁能指出我正确的方向?
首先创建一个ContentValues对象:
ContentValues cv = new ContentValues(); cv.put("Field1","Bob"); //These Fields should be your String values of actual column names cv.put("Field2","19"); cv.put("Field2","Male");
然后使用更新方法,它现在应该可以工作:
myDB.update(TableName, cv, "_id="+id, null);