我已经创建了sqlite数据库,我想做的是,当用户输入值时,我想检查值是否已经存在,如果值已经存在,则更新否则插入该值,我尝试过的是...
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;
}
}
最佳答案
首先,如果表中找到任何记录,则获取表的游标计数;这意味着返回游标计数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;
}
}