我已经创建了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;
             }

 }

10-08 16:52