Cara Cegah/Cek/Validasi Duplicate/Data Ganda di ListView VBNET

Banyak cara untuk mencegah duplikasi data atau cara mencegah agar data yang sama tidak masuk dua kali (terutama PrimaryKey nya). Kali ini saya akan ambil contoh mencegah data ganda pada listview, karena biasanya form master detail akan menyimpan data inputan pada listview sebelum data tersebut disimpan ke table/database.
Lihatnya contoh data berikut ini :
Sebenarnya listview sudah menyediakan fungsi untuk mencari item, yaitu FindItemWithText(), contoh
penggunaannya seperti ini:

Dim hasil As ListViewItem = ListView1.FindItemWithText(TextBox2.Text)
If hasil IsNot Nothing Then
   MessageBox.Show("Data Ini Sudah Ada pada Baris Ke " + (hasil.Index + 1).ToString, "Warning", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
   Exit Sub
End If
ListView1.Items.Add(TextBox2.Text).SubItems.Add(TextBox3.Text)

Hanya saja FindItemWithText() ini sifatnya seperti LIKE 'xx%' di sintak SQL, jadi dari contoh diatas jika kita ketik Da atau Dat atau Data, fungsi  tersebut akan menemukan/menganggap data sudah ada di listview (Da, Dat, Data = Data) padahal item di listview tidak ada data tersebut yang ada adalah Data1, Data2, ... dan seterusnya. Maka dari itu kita harus ciptakan fungsi buatan yang lebih flexsibl, contohnya seperti ini :

For Each item As ListViewItem In ListView1.Items
   If item.Text = TextBox2.Text Then
      MessageBox.Show("Data Ini Sudah Ada pada Baris Ke " + (hasil.Index + 1).ToString, "Warning", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
      Exit Sub
   End If
Next
ListView1.Items.Add(TextBox2.Text).SubItems.Add(TextBox3.Text)

Jika anda ingin melakukan validasi ke subitem nya juga maka anda tinggal tambahkan/sebutkan subitem dengan index keberapa-nya, contohnya :

For Each item As ListViewItem In ListView1.Items
   If item.Text + item.SubItems(1).Text = TextBox2.Text + TextBox3.Text Then
      MessageBox.Show("Data Ini Sudah Ada pada Baris Ke " + (hasil.Index + 1).ToString, "Warning", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
      Exit Sub
   End If
Next

Semoga tulisan saya ini dapat membantu anda, terimakasih.


Sumber : djiesoft.blogspot.com

Comments

Popular Posts