2012-09-18 33 views
0

我有一个问题 - 我已完成数据库(SQLite),与更新,我分析结构,看看我是否需要添加新的数据或更改现有位置数据库中的值。所以我有一个问题 - 是否可以一次替换整行中的值(即,在所有单元格中(即相同的id)列),或者有可能将值替换为每列。如何替换(更改)单元格数据库SQLite(Android)中的值?

我希望能为您提供帮助。

回答

1

如果您有要更新的行的id,则可以使用SQLiteDatabase.update()(docs here)

正如您在update()函数中看到的,您可以使用ContentValues来更新该行,并在函数的whereClause中提供行ID。在ContentValues里面,你可以把列的新值,如您平常在插入做:

ContentValues cv = new ContentValues(); 
cv.putString("row1Name","value1"); 
cv.putString("row2Name","value2"); 

等的更新调用会是这样的

db.update("table_name", cv, "row_id=?", new String[]{""=rowId); 
+0

对不起,但字段“row_id =?”应该以这种方式?那是我的查询应该看起来像? db.update(DBOpenHelper.TABLE_NAME,cv,“row_id =?”,new String [] {idChangeLocation +“”}); –

+0

这是正确的。 '?'是一个变量的占位符,我们在whereClause –

+0

后面的String [] {}中提供。感谢您的帮助。 ) –

0

您可以使用冲突取代您的表创建中的唯一约束。

如果与约束行发生冲突,然后它会被替换,例如: -

create table people (
    _id integer primary key autoincrmement, 
    person_id integer, 
    name text, 
    age integer, 
    unique (person_id) on conflict replace 
) 

这将完成更换是行,如果你试图用已经存在的为person_id插入。

在此处查看http://www.sqlite.org/lang_conflict.html

相关问题