Monday, June 17, 2013

Mencari Data dengan Banyak Kunci di VB.net - komponen data yang dimanfaatkan adalah DataView dan DataRowView. Kita bisa melakukan pencarian pada Field atau Kolom yang bukan Primary Key. Berbeda jika mencari data di DataRow, kita harus memasukan Primary Key sebagai kunci pencarian.

Mendefinisikan DataView



Langkah pertama tentu membuat variabel atau nama untuk Dim Nama_Variabel As DataView

contoh Dim TampilData As Dataview

Kemudian mengisi DataView dengan isi dari DataTable. Format kodingnya

Nama_Variabel = New DataView ( Nama_DataTable,Kunci_Pencarian / Sort, Nama Field yg Dicari,DataViewRowState.CurrentRows)

contoh
TampilData = New DataView(tabel, "", "KL", DataViewRowState.CurrentRows)

 

Dari kode diatas nama DataTable adalah tabel, kunci nya adalah “ ”, agar semua data dalam DataTable dimasukan ke DataView, KL adalah sebuah Field dalam tabel.

Mencari Data


Ketika mencari data di DataView, nilai yang di kembalikan adalah nilai index baris dari data yang ditemukan. Jika tidak DataView mengembalikan nilai –1. Oleh karena itu butuh sebuah variabel untuk menampung nilai tersebut. contoh kodenya :
Dim x As Integer = tplTb.Find(txtKdLk.Text)

Nilai x adalah index baris dari hasil pencarian data. Untuk menampilkan data hasil pencarian contoh kode nya
If x= –1 then ‘Jika nilai x = –1 maka

msgbox( “Data tidak ditemukan” )

Else ‘Jika ditemukan

lblNmLk.Text = tplTb(x)("NL").ToString() ‘Label diisi dengan data pada kolom NL pada baris ke X

Diatas adalah pencarian dengan 1 kunci, untuk lebih dari 1 kunci kita membutuhkan DataRowView. contoh kodenya
Dim TampilData As DataView
TampilData = New DataView(tabel, "", "KL, KI", DataViewRowState.CurrentRows) 'Pencarian di dua Field yaitu KL dan NL

Dim BarisCari () As DataRowView 'Deklarasi sebuah array sebagai DataRowView
BarisCari = TampilData.FindRows(New object() {txtKdKL.Text, txtKdKI}) 'Cari data 2 kunci

If BarisCari.Length = 0 Then
msgbox("Data Tidak ditemukan")
Else
lblNmNL.Text=BarisCari(0)("NL").ToString()
lblNmNI.Text=BarisCari(0)("NI").ToString()
End if

Pencarian di 2 Field KL dan KI hasil pencariannya ditampil ke Label dari Field NL dan NI.

 

0 comments:

Post a Comment