猿问

Android中的SQLite如何更新特定行

我一直在尝试更新特定的行一段时间,似乎有两种方法可以做到这一点。根据我的阅读和尝试,你可以使用:


execSQL(String sql) 方法


或者:


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);

我想完成这个:


更新Field1,Field2和Field3,其中主键(_id)等于1。


Eclipse在“更新”一词的下方给了我一条红线,并给出了我的解释:


SQLiteDatabase类型中的方法update(String,ContentValues,String,String [])不适用于参数(String,String,String,null)


我猜我没有正确分配ContentValues。谁能指出我正确的方向?


长风秋雁
浏览 784回答 3
3回答

慕勒3428872

首先制作一个ContentValues对象:ContentValues cv = new ContentValues();cv.put("Field1","Bob"); //These Fields should be your String values of actual column namescv.put("Field2","19");cv.put("Field2","Male");然后使用更新方法,它现在应该工作:myDB.update(TableName, cv, "_id="+id, null);

红糖糍粑

简单方法:String strSQL = "UPDATE myTable SET Column1 = someValue WHERE columnId = "+ someValue;myDataBase.execSQL(strSQL);

哈士奇WWW

首先创建一个ContentValues对象:ContentValues cv = new ContentValues();cv.put("Field1","Bob");cv.put("Field2","19");然后使用更新方法。注意,第三个参数是where子句。“?” 是一个占位符。它将被替换为第四个参数(id)myDB.update(MY_TABLE_NAME, cv, "_id = ?", new String[]{id});这是更新特定行的最简洁的解决方案。
随时随地看视频慕课网APP

相关分类

Java
Android
我要回答