我创建了sqlite数据库,我想要做的是当用户输入值然后我想检查该值是否已经存在,如果值已经存在,那么UPDATE否则INSERT该值,我试过的是... < / p>
public long insertDataCat(String id,String cat)
{
try {
SQLiteDatabase db;
db = this.getWritableDatabase(); // Write Data
ContentValues Val = new ContentValues();
Val.put("IDD", id);
Val.put("Categoryy", cat);
long rows = db.insert(TABLE_CATEGARY_MASTER, null, Val);
db.close();
return rows; // return rows inserted.
} catch (Exception e) {
return -1;
}
}
答案 0 :(得分:2)
首先你得到表的游标数,如果在表中找到任何记录意味着它返回游标计数1,否则返回零。如果游标计数1表示你执行UPDATE操作,否则执行插入操作。
public long insertDataCat(String id,String cat)
{
try {
SQLiteDatabase db;
db = this.getWritableDatabase(); // Write Data
ContentValues Val = new ContentValues();
Val.put("IDD", id);
Val.put("Categoryy", cat);
String selectQuery = "select * from TABLE_CATEGARY_MASTER";
Cursor cursor = db.rawQuery(selectQuery, null);`
if(cursor.getCount()==1)
{
//execute update query here
long updaterow=db.update(TABLE_CATEGARY_MASTER,val);
return updaterow; // return rows inserted.
}
else
{
//Perform the insert query
long rows = db.insert(TABLE_CATEGARY_MASTER, null, Val);
return rows; // return rows inserted.
}
db.close();
} catch (Exception e) {
return -1;
}
}