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

0 KOMENTAR