我有一项更新人员信息的活动
我想知道是否有一种方法只更新非空值,其余的你保持不变这里是我的更新功能
public boolean modifierMember (String nom ,String prenom ,String tel,String profile ,String etat,int id ){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(COL_2,nom);
contentValues.put(COL_3,prenom);
contentValues.put(COL_4,tel);
contentValues.put(COL_5,profile);
contentValues.put(COL_k, etat);
db.update(TABLE_Membre,contentValues,"IDM=?",new String[]{Integer.toString(id)});
return true;
}
答案 0 :(得分:2)
是的,你可以这样做,一种方法是检查值是 null 还是特定column
的值,在你的情况下它可以像:< / p>
if(nom != null) {
contentValues.put(COL_2,nom);
}
// Same for other fields.
在上面你可以类似地检查其他值,如果它们不为空那么只添加到contentValues
修改强>
它还取决于你的modifierMember()
函数作为参数传递的内容
例如,如果您传递'null',那么您需要按照我上面的说法进行比较,如果您通过""
,那么您必须相应地进行比较,这完全取决于您作为参数传递的内容
答案 1 :(得分:1)
根据您的要求检查以下更新方法,
public boolean modifierMember (String nom ,String prenom ,String tel,String profile ,String etat,int id ){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
if(nom != null)
contentValues.put(COL_2,nom);
if(prenom != null)
contentValues.put(COL_3,prenom);
if(tel != null)
contentValues.put(COL_4,tel);
if(profile != null)
contentValues.put(COL_5,profile);
if(etat != null)
contentValues.put(COL_k, etat);
db.update(TABLE_Membre,contentValues,"IDM=?",new String[]{Integer.toString(id)});
return true;
}