Bu örneğimizde Access‘ te oluşturmuş olduğumuz veritabanı içindeki verilerin C# formunda listview içerisinde görüntülenmesini sağlayacağız.
Öncelikle sirket.accdb isminde veritabanı dosyamızı oluşturalım.Dosyamızı projemizde bulunan ..\Bin\Debug klasörü içine atalım. Daha sonra içine personel isimli tabloyu aşağıdaki gibi oluşturalım.
Daha sonra formumuza aşağıdaki gibi bir adet buton ve bir adet listview ekleyelim.
Listview‘ de sütunları oluşturmak için listview’in sağ üst köşesinde bulunan simgeye tıklayarak EditColumns tıklayalım.
Karşımıza aşağıdaki gibi bir pence gelecektir. Burada Add diyerek sütunları oluşturalım. Text değerini sütun başlığımız olarak ayarlıyoruz. Width değerine ise sütun genişliğini veriyoruz. Kaç adet sütun eklemek istersek bu kısımdan ekliyoruz.
Örneğimizde NO,AD,SOYAD ve TELEFON olmak üzere 4 sütun bulunuyor.
Daha sonra Listview kontrolünde yine sağ üst köşedeki simgeye tıklayarak View kısmını Details olarak ayarlayalım.
Bu işlemden sonra form ile ilgili ayarlamaları bitirmiş oluyoruz. Şimdi kod kısmına geçiyoruz.
İlk olarak
1 2 3 4 | using System.Data.OleDb; using System.Data; |
ekliyoruz.
Daha sonra bağlantı için kullanacağımız nesnelerimizi public olarak ekleyelim.
1 2 3 4 5 | OleDbConnection con; //www.yazilimkodlama.com OleDbDataReader dr; OleDbCommand cmd; |
Son olarak butona çift tıklayarak aşağıdaki kodları yazalım
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | private void button1_Click(object sender, EventArgs e) { listView1.Items.Clear(); con = new OleDbConnection("Provider=Microsoft.ACE.Oledb.12.0;Data Source=sirket.accdb"); con.Open(); cmd = new OleDbCommand("Select * From personel", con); dr = cmd.ExecuteReader(); while (dr.Read()) { ListViewItem item = new ListViewItem(dr["PId"].ToString()); item.SubItems.Add(dr["PAd"].ToString()); item.SubItems.Add(dr["PSoyad"].ToString()); //www.yazilimkodlama.com item.SubItems.Add(dr["PTelefon"].ToString()); listView1.Items.Add(item); } con.Close(); } |
Programımızı çalıştırdığımızda personel tablosundaki verilerin listview’de görüntülendiğini göreceğiz.
Kodların tamamı aşağıdaki şekilde olacaktır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.OleDb; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace listview_veritabani { public partial class Form1 : Form { public Form1() { InitializeComponent(); } OleDbConnection con; //www.yazilimkodlama.com OleDbDataReader dr; OleDbCommand cmd; private void button1_Click(object sender, EventArgs e) { listView1.Items.Clear(); //www.yazilimkodlama.com con = new OleDbConnection("Provider=Microsoft.ACE.Oledb.12.0;Data Source=sirket.accdb"); con.Open(); cmd = new OleDbCommand("Select * From personel", con); dr = cmd.ExecuteReader(); while (dr.Read()) { ListViewItem item = new ListViewItem(dr["PId"].ToString()); item.SubItems.Add(dr["PAd"].ToString()); item.SubItems.Add(dr["PSoyad"].ToString()); //www.yazilimkodlama.com item.SubItems.Add(dr["PTelefon"].ToString()); listView1.Items.Add(item); } con.Close(); } } } |
Öncelikle teşekkürler.
Burada read komutunu kullanımını açıklar mısınız?
dr.Read()
metodu, veritabanındaki sonuç kümesinde bir sonraki kayda geçmeyi sağlar. Bu durumda, while döngüsü içinde kullanılarak her bir satırın verilerini işlemek üzere bir sonraki satıra geçilmiş olur. Yani, her döngü adımındadr["columnName"].ToString()
ifadeleri bir sonraki satırın değerlerini temsil eder ve bu değerlerListViewItem
oluşturularak listeye eklenir.Anladım. teşekkürler. Anladığım kadarıyla “Read” olduğu sürece While(True) oluyor ve aşağıdaki döndü çalışıyor. Read olmayınca yani okunacak satır bitince While döngüsü duruyor.
Özetle dediğiniz gibi
birazcık daha acıklasanız çok güzel olacakmı ta niye açıklamadınız