如何更新sqlite DB中的特定数据?

时间:2016-06-18 07:17:20

标签: android sqlite

  1. 这是我的数据库类。

    public boolean updatePrediction(String item_ean,String prediction)
    { 
    SQLiteDatabase db=this.getWritableDatabase();
    ContentValues contentValues = new ContentValues();
    contentValues.put(ITEM_EAN, item_ean);
    contentValues.put(PREDICTION_TYPE,prediction);
    db.update(TABLE_REPORT,contentValues,PREDICTION_TYPE+"="+,null);
    return true;
    
  2. 这是活动类代码段。

    toggleButton.setOnClickListener(new View.OnClickListener() 
    {
    @Override
    public void onClick(View v) {
    if (((ToggleButton) v).isChecked()) {   
    booleanisUpdated=dbcontroller.updatePrediction(editText.getText().toString(),"4");
    Toast.makeText(getBaseContext(), "Toggle is  on"+isUpdated, Toast.LENGTH_LONG).show();
    
    } else {
    Toast.makeText(getBaseContext(), "Toggle is off",Toast.LENGTH_LONG).show();
    
    }
    }
    });
    
  3. 当我切换切换按钮时,我的case_ean的prediction_type中的特定数据应该会改变。

1 个答案:

答案 0 :(得分:0)

execSQL用于执行不是SELECT / INSERT / UPDATE / DELETE的单个SQL语句。

对于UPDATE语句,请改用以下任何一种语法。

  1. update(String,ContentValues,String,String [])
  2. updateWithOnConflict(String,ContentValues,String,String [],int)
  3. 您必须为您的案例使用更新,如下所示:

    public boolean updatePrediction(String item_ean,String prediction){ 
       SQLiteDatabase db=this.getWritableDatabase();
       ContentValues contentValues = new ContentValues();
       contentValues.put(ITEM_EAN, item_ean);
       String[] args = new String[]{prediction};
       db.update(TABLE_REPORT,contentValues,PREDICTION_TYPE+"=?",args);
       return true;
    }