刪除行我有一個這樣的數據庫:更新和數據庫
"id", "ingredients_id", "recipes_id", "qta", "created_at"
"1", "Acqua", "Ricetta1", "100", "2014-04-05 10:34:13"
"2", "Alcolico Gin", "Ricetta1", "200", "2014-04-05 10:34:13"
"3", "Amido di Mais", "Ricetta1", "300", "2014-04-05 10:34:13"
"4", "Acqua", "Ricetta2", "330", "2014-04-05 10:34:15"
"5", "Alcolico Gin", "Ricetta2", "440", "2014-04-05 10:34:15"
"6", "Amido di Mais", "Ricetta2", "550", "2014-04-05 10:34:15"
我要更新一些值未在表中,示例只在「Ricetta2」的量。 最好是刪除所有行並用新數據重新創建新行或更新僅更改的值? 我這麼認爲是因爲如果用戶在重新創建配方「Ricetta2」時刪除了一種配料,我只有兩種配料。 是正確的還是有更新/刪除表的最佳方法?
我用這個代碼更新:
public long Updatedb_Ingredienti_for_db_Recipe(StructRicetta rct) {
ContentValues values = new ContentValues();
long Ingredienti_id = -1;
int num = rct.get_num_Ingredienti();
for (int i = 0; i< num;i++) {
values.put(KEY_RECIPES_ID, rct.get_db_Ricetta_Name());
values.put(KEY_INGREDIENTS_ID, rct.itemsIngredients.get(i).getNome());
values.put(KEY_QTA, rct.itemsIngredients.get(i).getQta());
values.put(KEY_CREATED_AT, getDateTime());
// updating row
Ingredienti_id = dbWrite.update(TABLE_INGREDIENTS_RECIPES, values, KEY_RECIPES_ID + " = ", new String[] { String.valueOf(rct.get_db_Ricetta_Name()) });
if(Ingredienti_id < 0)
break;// errore scrittura
}
return Ingredienti_id;
}
但這代碼修改所有的行...
行,數據來自ListView,所以如果用戶在ListView中刪除了一行,那麼如何更新缺少的行呢? 最好刪除數據並重寫或不重寫? –
您無法更新缺少的行。如果用戶刪除(在ListView上)某個項目,刪除該行(語法與更新相同)。那麼你應該從ListView中刪除該項目以及防止用戶「更新」的項目不存在的情況下 – markubik