December 11, 2008

Menampilkan Data Dari Table Ke Dalam Listview


Sering kali kita menggunakan listview untuk menampilkan data yang kita miliki, dan sering nya data tersebut bukan dari table, melainkan hanya inputan dari textbox atau yang lainnya. Sedangkan untuk menampilkan data kita bisa menggunakan DataGrid/DataGridView. Maka dari itu artikel ini akan menjelaskan secara singkat bagaimana menampilkan data pada listview , mengaktifkan check box pada listview sampai dengan melakukan suatu proses simpan yang mana hanya dilakukan pada baris yang di pilih.
Tambahkan 1 buah listview pada form, lalu ubah properties listview seperti :
CheckBoxes : True
FullRowSelect : True
GridLines : True
View : Details Dan pada properties coloumns klik button … disamping (Collection), lalu Add 2 kolom masing bernama Machine ID, dan Machine Name. Dan klik OK.


Tampilan ListView setelah dilakukan perubahan adalah seperti dibawah ini :
Sedangkan source code untuk menampilkan data dari table ke list view adalah seperti dibawah ini.
Sub ViewData()
Dim i As Integer
Displaydata()
LstMachine.Items.Clear()
For i = 0 To (objDataTable.Rows.Count - 1)
With objDataTable.Rows(i)
Dim lSingleItem As ListViewItem
lSingleItem = LstMachine.Items.Add(.Item("MachineID").ToString)
lSingleItem.SubItems.Add(.Item("MachineName").ToString)
End With
Next i

End Sub
Dan sebelumnya buat dahulu coding untuk menampilkan data dan data tersebut disimpan kedalam Datatable (kalau di sintaks ini kita kasih nama objDataTable). Contoh sintaks nya seperti dibawah
Sub Displaydata()
Try

objDataTable.Clear()

strSQL = "SELECT T_Machine.MachineID,T_Machine.MachineName, " & _
" T_Product.ProductName, T_Machine.MachineDescription,T_Machine.AssetNo " & _
" FROM T_Machine INNER JOIN " & _
" T_Product ON T_Machine.ProductID = T_Product.ProductID " & _
" Where T_Machine.Deletion=0 order by T_Machine.MachineID Asc "

objCommand = New SqlCommand
objCommand.Connection = MyConnection.open
objCommand.CommandType = CommandType.Text
objCommand.CommandText = strSQL
objDataAdapter = New SqlDataAdapter(objCommand)
objDataAdapter.Fill(objDataSet, "MDT_Machine")
MyConnection.close()
objDataTable = objDataSet.Tables("MDT_Machine")

Catch ex As Exception
MsgBox("Program error" _
& vbCrLf & Err.Description)
MyConnection.close()
End Try
End Sub

Untuk query tergantung pada kebutuhan. Setelah selesai sintaks diatas tinggal panggil aja Sub ViewData ke dalam Form Load.
Sedangkan untuk melakukan proses simpan pada baris yang dipilih adalah seperti dibawah ini.
For i = 0 To LstMachine.Items.Count - 1
If LstMachine.Items.Item(i).Checked = True Then 'Jika baris yang pilih, checkbox = true

'Buat proses simpan disini
End If
End If

Next i

Semoga bermanfaat.
Wassalam

42 comments:

Anonymous said...

Mas ada ngga solusi untuk menampilkan semu data dari database ke textbox maksudnya seperti tampilin data pada listview atau datagridview tapi saya pengen semua data pada rows tabel di tampilin ke textbox yang propertinya di seting multiline

Junindar said...

bisa sich bisa aja..cuma yang jelas brantakan ntar mas....mau tau ini untuk apa kok di tampilin di textbox..

admin said...

mau tanya juga nih,
kalo saya mau masukin data ke dalam listview dari hasil query 2 table yang saling relasi kok gak bisa ya pake tabel1.fiel1, table2.field1

contohnya gini :
ListViewAnggota.Items.Add(Reader.Item("table1.field1").ToString)

notifikasinya "table1.field1" tidak dikenali (out of range). mungkin punya solusi?

thanks

Junindar said...

kalau nama field nya ga ada yang sama dengan field2 yang akan ditampilkan, ga usah pake table.field, langsung aja nama field nya..tapi kalau ada field yang sama pada SQLnya dibuat field1 as [namabaru]..
ntar pas masukkin data ke listview pake alias nya atau nama baru nya..
semoga bermanfaat..

dimasiano said...

pak, kalau nampilinnya di datagridview bukan di listview gimana pak, bisa engga untuk memasukkan CheckBox ke dalam datagridview, terima kasih

Junindar, MVP VB said...

coba ini mas...untuk Vb 2005 keatas..
dimana kita membuat CheckBox didalam DatagridView

Dim Cb As New DataGridViewCheckBoxColumn()

Cb.AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader

Cb.ThreeState = True
Cb.TrueValue = 1
Cb.FalseValue = 0
Cb.IndeterminateValue = System.DBNull.Value
Cb.DataPropertyName = "Checkbox"
Cb.HeaderText = "Checkbox"
Cb.Name = "Checkbox"
Cb.ReadOnly = False
DataGridView1.Columns.Add(Cb)

Anonymous said...

Bpk junindar yg baik...
saya mau tanya gimana caranya klo kita ingin mengambil data dari satu tabel, contoh B tapi yang kriterianya ada di tabel A, misal tabel B isinya data jabatan, tabel A data karyawan, nah kalo kita ingin data jabatan tapi yang atas nama Misal amin, yg amin itu ada di tabel A, itu gimana pak... terimakasih sebelumnya...
klo berkenan contoh penulisan codenya boleh di email ke tbaihaqi@yaboo.com

Junindar, MVP VB said...

pertama harus ada relasi nya mas..
di tabel karyawan ada ID jabatan. jadi kalau ambil nama
jabatan tinggal main di query nya aja

liat contoh pada comment saya ke dua terakhir untuk penggunaan data reader..
tinggal ubah strSQL seperti ini
strSQL="SELECT NamaJabatan FROM Jabatan INNER " & _
" JOIN Karyawan ON Jabatan.ID_Jabatan = Karyawan.ID_Jabatan " & _
" Where id_Karyawan=@ID_Karyawan;"

Anonymous said...

kalo saya menggunakan koneksi recorset tapi saya ingin menyimpan data listview ke tabel di database, seperti yang mas buat tapi error?

Junindar, MVP VB said...

Bisa kasih detail error nya seperti apa.. coba liat ebook saya yang baru..

IcHiNx said...

mas saya mau tanya, gmn cara'a, jika saya memilih di combobox, trus akan tampil d listview...
contoh'a: saya pilih pilihan dari combobox yang isi'a dari tabel a, trus akan muncul tabel b d listview..
dan d listview'a jga ada tombol checkbox'a..
gmn mas cra'a..
mav klo bhasa'a kurang d mngerti..
maklum newbie..
sya janji akan berkunjung kesini...
hehe....
tolong y mas...

Junindar, MVP VB said...

untuk menampilkan checkbox ubah properties Checkbox menjadi true pada listview..
kamu sudah tau bagaimana menampilkan data dengan criteria??
sudah tau caranya menampilkan data dari table listview..
coba cek di ebook saya..

Lazuardy Firdaus said...

Mas salam kenal nih...
Saya mau minta bantuan, semoga nggak merepotkan.
Bagaimana caranya menampilkan data dari 2 tabel atau lebih ke dalam 1 datagridview di visual studio 2008 ?
Thanks b4

Junindar, MVP VB said...

apakah table nya berelasi??

Lazuardy Firdaus said...

Iya Mas tabel-nya berelasi

Junindar, MVP VB said...

tinggal bermain di SQL nya aja mas.. mau menampilkan seperti apa..

Lazuardy Firdaus said...

Inginnya menampilkan semua kolom di dua tabel atau lebih, cuma saya kurang ahli dalam SQL, bisa berikan contoh kode-nya mas ?
Misal di-tabel 1 saya punya 2 kolom kode barang(primary key) dan nama barang, kemudian tabel-2 saya punya kolom nomor(primary key), merk, model dan nama barang ID. Relasinya kode barang - nama barang ID...Tolong dibantu mas.

Junindar, MVP VB said...

coba download ebook saya ttg VB 10, banyak contoh2 SQL untuk table berelasi..

Lazuardy Firdaus said...

Ok deh mas saya coba donlot & pelajari, makasih.

Salmun Andoni said...

kak bagaimana kalo data yang akan ditampilkan data yang belum dipernah dipilih ???

eka said...

Boleh tanya Pak?
saya sudah bikin query Sqldari 3 buah tabel yang saling berelasi..
Yang saya ingin tanyakan

"Bagaimana menampilkan data tersebut dalam 1 datagridview vb.net 2010?"


inti---->contoh source menampilkan data dari 3 buah tabel ke dalam 1 datagridview...

---Terimakasih---

eka said...

Boleh tanya Pak?
saya sudah bikin query Sqldari 3 buah tabel yang saling berelasi..
Yang saya ingin tanyakan

"Bagaimana menampilkan data tersebut dalam 1 datagridview vb.net 2010?"


inti---->contoh source menampilkan data dari 3 buah tabel ke dalam 1 datagridview...

---Terimakasih---

Junindar, MVP VB said...

Jika sudah bisa membuat query 3 table berelasi..
caranya sama saja dengan menampilkan 1 table ke dalam datagridview..

akbar said...

selamat siang pak ... saya berhasil menampilkan data database pada listview menggunakan code diatas .. tapi mas saya gagal ketika melakukan pencarian dan menampilkan di listview, untuk sql nya saya gunakan seperti ini:

objcommand.CommandText = ("SELECT * from Tbpasien where " & ComboCari.Text & " LIKE '%" + Trim(txt_cari.Text) + "%'")

berhasil untuk logikanya cuma gagal ditampilin di list view.

mohon bantuannya :))

Junindar, MVP VB said...

ada pesan error?? or gmana??

akbar said...

sekarang udah bisa mas :)


1 lagi mas

database yang saya gunakan SQL Server 2005, programnya jalan diKomputer saya ketika saya coba di Komputer Teman ternyata engga bisa konek, soalnya nama servernya berbeda mas, solusi agar bisa dibaca juga di komputer temen saya ada ga mas?

yang terakhir mas, untuk mencetak di crystal report kalo menggunakan SQL server gimana ya mas? untuk tabel transaksinya gabisa soalnya, saya belum ngerti membuat Query di SQL Server.... maaf mas banyak nanya .. hehhe makasi sebelumnya..


regards..
Akbar

mai said...

mas, mau nanya...
Kalau ingin isi listview itu tampil ke reportviewer (Microsoft Report Viewer bukan CR) langsung bukan dari database, apa bisa? Terima kasih atas jawabannya...

arisaprianto said...

cmd = New OleDb.OleDbCommand(" SELECT EMPLOYEE_ID, EMPLOYEE_NUMBER, FULL_NAME, GENDER, PHONE, DEPARTMENT_NAME, EDUCATION_NAME, JOIN_REASON, TITLE_NAME FROM EMPLOYEES E JOIN SETTING_DEPARTMENT D ON D.DEPARTMENT_ID = E.DEPARTMENT_ID JOIN SETTING_EDUCATION C ON C.EDUCATION_ID = E.EDUCATION_ID JOIN SETTING_JOIN_REASON J ON J.JOIN_REASON_ID = E.JOIN_REASON_ID JOIN SETTING_TITLE T ON T.TITLE_ID = E.TITLE_ID ")
sw = cmd.ExecuteReader????
ini saya mau, mengisi combo box dengan query join di atas, tapi tidak bisa????mohon bantuannya, terima kasih

Junindar, MVP VB said...

bagus nya email aja kalau sperti ini.. :)

shideezhi said...

pak saya masih bingung nyoba coding yang di atas. Masih ada errornya.
Bisakah saya minta source code nya ?

Terima kasih.

Junindar, MVP VB said...

apa sudah ikutin dngan bnar??
Error nya apa??

shideezhi said...

heheheheee
sekarang uda bisa kok mas .. ternyata error d koneksi database nya ..

mksh banyak bwt artikel-artikel & e-booknya mas , ngebantu bgt buat skripsi saya .. d^_^b

Anonymous said...

mas junidar, saya sudah bisa menampilkan data yang kita pilih pada listview dan kita ingin menambah/edit data pada listviewnya,gimana caranya ya mas.trims amin

Anonymous said...

mas mohon bantuanya, kalau untuk listview vb net gimana listingnya agar mengenal data yang sama, contoh : "Jika data ada yang sama dibarisan listview maka data sudah dipesan".

sarjoe holic said...

Pak, saya ada sedikit kesulitan,gmna caranya masukin data field yg ada di tabel database SQL Server 2008 supaya bisa muncul di combo box dan begitu di klik maka semua data yg yang lain akan muncul smua di textbox.
Misal saya punya tabel yang berisi ID_KARYAWAN dan NAMA_KARYAWAN,ketika saya masukkan data ID_KARYAWAN di combo box, maka NAMA_KARYAWAN yang mempunyai id tersebut akan muncul secara otomatis...mohon bantuannya.terima kasih

Anonymous said...

pak bisa minta alamat YM

Lia Junita Ramadhan said...

Mas Junindar, saya mohon bantuannya, saya membuat tampilan dengan 2 DGView, yang pertama saya gunakan sebagai header, dan yang kedua sebagai detail. Ini saya buat karena kesulitan untuk membuat header dengan 7 row.
Gimana caranya untuk DGView pertama supaya terlihat :
Kolom1 = Nama (1 baris di merged)
Kolom2 = Alamat (1 baris di merged)
Kolom3 = berdasar tabel (berisi 7 baris)
Mohon bantuan untuk buat kolom1 dan kolom2 yang hanya berisi 1 baris.

!! riantyfloom said...

Mas, saya mau nanya.
Gimana caranya nampilin hasil dari sqlplus (data dari oracle) ke vb.net? entah itu pake richtexbox atau GridView. tapi cuma mengambil beberapa dari datanya saja, jadi ga full.
contoh:
di sqlplus connect ke user hr dan ketik perintah ini:
explain plan for
SELECT e.employee_id, e.last_name, e.first_name, e.department_id,
d.department_name, d.manager_id, d.location_id, l.country_id FROM employees e
JOIN departments d ON e.department_id = d.department_id
JOIN locations l ON d.location_id = l.location_id
WHERE l.location_id = 1700;
(lalu enter)
hasilnya ntr: explained
setelah itu ketikkan lagi:
select * from table(dbms_xplan.display);
(ntr akan ada hasil planing table, nah saya mau ngambil kolom Rows, Bytes, Cost, %CPU dan time nya)

mas pencerahannya donk. terimakasih

Anonymous said...

mau nanya caranya nampilin data pada database SQL berdasar data pada teksbox1 multiline(data lebih dari satu data) ke teksbox2 multiline dan teksbox3 multiline..gimana ya??mohon bantuannya..:):)

ontwit said...

cara koneksinya gimana?

Anonymous said...

mas bisa lbih jls lg gk,, g ngerti um. hehehe... cara menampilkan data dari table ke dalam list view

Anonymous said...

Mas jun.. tolong kasih solusi tampilkan data di lisview ... data di database barang ada 10rb item nah klo pake cara yg umum bagus klo datanya cm ratusan tp klo ribuan berat banget mas... saya cb pake gridview berhasil di paging ... tp saya suka pake lisview karna dari segi tampilan... maksih masih sebelmnya