Android 中的 SQLite 如何更新特定行

2022-08-31 07:32:16

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

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

我正在尝试完成此操作:

更新字段 1、字段 2 和字段 3,其中主键 (_id) 等于 1。

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

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

我猜我没有正确分配内容值。任何人都可以为我指出正确的方向吗?


答案 1

首先创建一个 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 = ?", new String[]{id});

答案 2

简单的方法:

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

myDataBase.execSQL(strSQL);

推荐