此篇則是說明如何刪除對應資料
使用此功能必須要非常謹慎
所以要再次確認此功能是否是您所想要的
1 . 刪除資料
為什麼 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 deleteData(@NonNull Date mData) {
// DELETE FROM Table where 條件....
String deleteVal = KEY_DATE + " = ?";
DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String[] strVal = new String[]{sdf.format(mData)};
// 如果你有多條件
/*
String strSQL = KEY_DATE + " = ? AND " + KEY_NOTE + " = ?";
// 第一問號,第二問號...以此類推
String[] strings = new String[]{sdf.format(mDate), "Apple"};
*/
SQLiteDatabase db = this.getWritableDatabase();
return db.delete(TABLE_CONTACTS, deleteVal, strVal);
}
為什麼 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 deleteData(@NonNull Date mDate, int number, String note) {
String strSQL = KEY_DATE + " = '2018-01-05'";
SQLiteDatabase db = this.getWritableDatabase();
return db.delete(TABLE_CONTACTS, strSQL, null);
}
歡迎轉載,請註明出處。
沒有留言:
張貼留言