此篇我們要提到的是修改資料
1 . 修改資料
private static final String TABLE_CONTACTS = "counter";
private static final String KEY_DATE = "count_date";
private static final String KEY_NUMBER = "count_number";
private static final String KEY_NOTE = "count_note";
/**
* 更新資料
*
* @param mDate
* @param number
* @param note
*/
public int updateData(@NonNull Date mDate, int number, String note) {
DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
ContentValues values = new ContentValues();
values.put(KEY_NUMBER, number);
values.put(KEY_NOTE, note);
String strSQL = KEY_DATE + " = ?";
String[] strings = new String[]{sdf.format(mDate)};
// 如果你有多條件
/*
String strSQL = KEY_DATE + " = ? AND " + KEY_NOTE + " = ?";
// 第一問號,第二問號...以此類推
String[] strings = new String[]{sdf.format(mDate), "Apple"};
*/
SQLiteDatabase db = this.getWritableDatabase();
return db.update(TABLE_CONTACTS, values, strSQL, strings);
}
為什麼 strSQL 不用放完整字組?為什麼條件參數要提出來?
要解這些問題前就必須追程式碼了
原來內部方法已經將修改指令寫在內部
所以我們只要編寫 Where 後的指令
那為什麼要用 String 裝條件的變數?
也是因為上圖最後幾行所提出來的
依照集合內的參數依序擺放
其實擺放參數有以下此方法 :
1 . 用集合方法( 如上方 )
2 . 只接將參數寫在條件內
private static final String TABLE_CONTACTS = "counter";
private static final String KEY_DATE = "count_date";
private static final String KEY_NUMBER = "count_number";
private static final String KEY_NOTE = "count_note";
.
.
.
public int updateData(@NonNull Date mDate, int number, String note) {
String strSQL = KEY_DATE + " = '2018-01-05'";
SQLiteDatabase db = this.getWritableDatabase();
return db.update(TABLE_CONTACTS, values, strSQL, null);
}
參考資料:SQLiteBrowser
歡迎轉載,請註明出處。
沒有留言:
張貼留言