2012-09-18 77 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

相關問題