[WP8 + SQLite] Delete Data From SQLite In Windows Phone

Sebelumnya saya pernah memposting menggenai SQLite juga tetapi baru tentang menginput data. Sekarang saya akan membahas bagaimana menghapus data dari SQLite. Project yang saya gunakan pada postingan ini adalah lanjutan dari postingan sebelumnya. Saya hanya melakukan penambahan fitur long press selected item pada listbox yang sudah pernah saya berikan.

Pada sadarnya untuk menghapus data di SQLite cukup gampang hanya membutuhkan SQL untuk mendeletenya saja. hanya saja sebelum membuat SQL kita perlu pendeklarasian SQL comment terlebih dahulu, carannya adalah dengan :

SQLiteCommand sqlComm = new SQLiteCommand(dbConn);

Setelah memiliki SQL comment sekarang anda bisa menyiapkan sintak SQL yang ingin dieksekusi dan disimpan dalam SQL comment, cara seperti di bawah ini:

 sqlComm.CommandText = "delete from task where nama = '" + Budi+ "'";

SQL diatas adalah untuk mendelete data yang dimiliki budi, ini bisa dimanipulasi dengan menganti kriterianya seperti SQL biasa. atau bisa disesuaikan dengan ini dari textbox seperti ini.

sqlComm.CommandText = "delete from task where nama = '" + textBox1.text+ "'";

Jika sudah siap SQLnya dan sudah disimpan dalam SQL comment sekarang saatnya untuk mengeksekusi SQL comment. Berikut caranya.

sqlComm.ExecuteQuery<Task>();

Penjelasan diatas adalah dasar dari cara menghapus data di SQLite, untuk implementasi penghapusannya mungkin banyak ide yang muncul dan berbeda-beda untuk setiap individu. Untuk implementasinya saya akan menambahkan fitur hapus jika ada item list yang di tekan lama (hold) maka akan ada konfirmasi penghapusan data. Cara menambahkan even hold cukup menambahkan even pada list seperti gambar di bawah ini.

delete

Sedangkan di mainpage.xml.csnya saya tambahkan kode di bawah ini yang merupakan hasil modipikasi code sebelumnya yang kita bahas.

private string potong(int urutan, string isiList) {
            string temp =string.Empty;int i=0;
            foreach (var t in isiList.ToCharArray()) {
                if (i == urutan && !t.Equals(':')) 
                    temp += t;
                else if (t.Equals(':')) 
                    i++;
            }
            return temp;
        }
        private void DataList() {
            List<Task> retrievedTasks = dbConn.Table<Task>().ToList<Task>();
            DaftarTlp.Items.Clear();
            foreach (var t in retrievedTasks)
            {
                DaftarTlp.Items.Add(t);
            }
            TBTlp.Text = string.Empty;
            TBNama.Text = string.Empty;
        }
        private void DaftarTlp_Hold(object sender, System.Windows.Input.GestureEventArgs e)
        {
            if (DaftarTlp.SelectedIndex >=0)
            {
                MessageBoxResult result=MessageBox.Show("Delete","Are you sure ?",MessageBoxButton.OKCancel);
                if (result==MessageBoxResult.OK) {
                    Task task = new Task();
                    SQLiteCommand sqlComm = new SQLiteCommand(dbConn);
                    sqlComm.CommandText = "delete from task where nama = '" + potong(1,DaftarTlp.SelectedItem.ToString()) + "'";
                    sqlComm.ExecuteQuery<Task>();
                    DataList();
                }
            }
        }

Jika item list kita hold maka akan muncul message box yang berfungsi mengkonfirmasi apakah kita benar-benar mau menghapus data item yang kita pilih. Jika user memilih iya maka data akan terhapus. Kurang lebih itu ide dari saya, jika anda memiliki ide yang berbeda silahkan dimodifikasi sesuai kebutuhan anda tetapi pada dasarnya penghapusan itu sama.. Selamat mencoba..🙂

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: