2017-03-07 136 views
0

嗨那里,那些3“PE_ ..”我首先添加值创建和那些3“et .._ getText()。toString()..”获取新的更改用户。你明白我的观点了吗?还是我的应用程序停止,因为我调用更新方法上分贝以下:SQLite数据库 - 更新查询

controller.update_pw(PE_Desc, PE_Pass, PE_Note, etDesc.getText().toString(), etPass.getText().toString(), etNote.getText().toString()); 

这是我的数据库我的更新方法:

public void update_pw(String old_description, String old_password, String old_note, String new_description, String new_password, String new_note){ 
    this.getWritableDatabase().execSQL("UPDATE PASSWALL SET PW_DESC='"+new_description+"', PW_PASS='"+new_password+"', PW_NOTE='"+new_note+"' " + 
      "WHERE PW_DESC='"+old_description+"', PW_PASS='"+old_password+"', PW_NOTE='"+old_note+"'"); 

我想知道的之间用逗号“PW_DESC ='',PW_PASS ='',PW_NOTE =''哪里......”,这是否正确?需要你帮助,感谢你的建议。谢谢!

回答

0

您在WHERE子句缺少
条件必须由运营商分隔。

编辑: 更新值的另一种方法。

ContentValues newValues = new ContentValues(); 
newValues.put("PW_DESC", new_description); 
newValues.put("PW_PASS", new_password); 
newValues.put("PW_NOTE", new_note); 
SQLiteDatabase db=getReadableDatabase(); 
db.update("PASSWALL", newValues, "PW_DESC= '" + old_description + "' AND "+"PW_PASS= '" +old_password+ "' AND "+ "PW_NOTE= '" + old_note+ "'", null); 
+0

Ohhhkkaayy。还有SET后的条件? – APX

+0

我编辑了我的答案。 –

+0

谢谢你。现在我知道了哈哈 – APX

0

试试这个,

 public void update_pw(String old_description, String old_password, String old_note, String new_description, String new_password, String new_note) { 

      SQLiteDatabase db = this.getWritableDatabase(); 
      String strSQL = "UPDATE PASSWALL SET PW_DESC='" + new_description + "', PW_PASS='" + new_password + "', PW_NOTE='" + new_note + "' WHERE PW_DESC='" + old_description + "' AND PW_PASS='" + old_password + "' AND PW_NOTE='" + old_note + "'"; 
      db.execSQL(strSQL); 
     } 
+0

。感谢你的努力 – APX