为了账号安全,请及时绑定邮箱和手机立即绑定

Android中的SQLite如何更新特定行

Android中的SQLite如何更新特定行

长风秋雁 2019-08-31 14:55:21
我一直在尝试更新特定的行一段时间,似乎有两种方法可以做到这一点。根据我的阅读和尝试,你可以使用: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。谁能指出我正确的方向?
查看完整描述

3 回答

?
慕勒3428872

TA贡献1848条经验 获得超6个赞

首先制作一个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);


查看完整回答
反对 回复 2019-08-31
?
红糖糍粑

TA贡献1815条经验 获得超6个赞

简单方法:


String strSQL = "UPDATE myTable SET Column1 = someValue WHERE columnId = "+ someValue;


myDataBase.execSQL(strSQL);


查看完整回答
反对 回复 2019-08-31
?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

首先创建一个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});

这是更新特定行的最简洁的解决方案。


查看完整回答
反对 回复 2019-08-31
  • 3 回答
  • 0 关注
  • 783 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信