Skip to main content

AccessTr.neT


Access Veri Tabanıda Arama Yapıyorum Ama Çok Yavaş Nasıl Hızlanabilir....

Access Veri Tabanıda Arama Yapıyorum Ama Çok Yavaş Nasıl Hızlanabilir....

#1
Visual Studio 2013  yazdığım programda veritabanı olarak Access Veri Tabanı kulanıyorum ve database den gelen verileri ise listView1 sıralatıyorum.

1000 kayıtta sıkıntı yok 3,5 saniyede açılıyor ama   5000 ve  üsütü kayıt sırlamada ise 2 dakika ve üstü bekletiyor....

istediğim şey ise verileri kısa sürede kullanıcıya sunmak

kodlarım aşağıda yer almaktadır.   

1-)  sorgumda hata var mı?
2-)  bu süre normal mi?
SQL server geçme ihtimalim yok illa Access olacak





private void ListeYap()
        {

            Baglan.Close();

            Baglan.Open();

            OleDbCommand kmt = new OleDbCommand(@"SELECT * FROM RealEstate  ORDER BY Kimlik DESC", Baglan);

            OleDbDataReader oku = kmt.ExecuteReader();

            listView1.Items.Clear();


            while (oku.Read())
            {


                ListViewItem ekle = new ListViewItem();

                ekle.Text = oku["Kimlik"].ToString().Trim();

                ekle.SubItems.Add(oku["SGorevliMemur"].ToString().Trim());
                ekle.SubItems.Add(oku["STasinmazAdi"].ToString().Trim());
                ekle.SubItems.Add(oku["SMaliki"].ToString().Trim());
                ekle.SubItems.Add(oku["Sil"].ToString().Trim());
                ekle.SubItems.Add(oku["Silce"].ToString().Trim());
                ekle.SubItems.Add(oku["SMahalle"].ToString().Trim());
                ekle.SubItems.Add(oku["SCadde"].ToString().Trim());
                ekle.SubItems.Add(oku["SAda"].ToString().Trim());
                ekle.SubItems.Add(oku["SParsel"].ToString().Trim());
                ekle.SubItems.Add(oku["SVasif"].ToString().Trim());
                ekle.SubItems.Add(oku["SYuzOlcumu"].ToString().Trim());
                ekle.SubItems.Add(oku["SHisseOrani"].ToString().Trim());
                ekle.SubItems.Add(oku["SBagimsizBolum"].ToString().Trim());             
                ekle.SubItems.Add(DateTime.Parse(oku["SKapsamTarihi"].ToString()).ToString("dd/MM/yyyy"));
                ekle.SubItems.Add(oku["SKapsamSayi"].ToString().Trim());
                ekle.SubItems.Add(oku["SilgiBaskanYrd"].ToString().Trim());
                ekle.SubItems.Add(oku["SProjesi"].ToString().Trim());
              
                ekle.SubItems.Add(DateTime.Parse(oku["SGorevTarihi"].ToString()).ToString("dd/MM/yyyy"));

                listView1.Items.Add(ekle);

                int sayi = listView1.Items.Count;

                lbnKayitSayisi.Text = "Portföyünüzde Bulunmamaktadır";

                UrunRenklendir();

                if (sayi != 0)
                {
                    lbnKayitSayisi.Text = " Portföyünüzde Toplam  " + sayi.ToString() + " Kayıt Bulunmaktadır.";
                }

            }

            Baglan.Close();

        }
Son Düzenleme: 22/03/2019, 16:22, Düzenleyen: Hakan Uslu.
Cevapla
#2
SQL Code
OleDbCommand kmt = new OleDbCommand(@"SELECT * FROM RealEstate  ORDER BY Kimlik DESC", Baglan);

Problem burada.

Hiç bir zaman veritabanından tüm kayıtlar çekilmez. Ekrandaki listede kullanıcının görebileceği kayıt sayısı sınırlıdır. Listede kullanıcının göreceği kayıt sayısı 30-40 hadi bilemediniz 50 olur. Daha fazla kayıt için sayfalama yaparsınız. Sonraki butonuna basınca sonraki 50 kaydı çekersiniz. Ayrıca artık tüm kayıtlar listview içinde olmayacağından dolayı aranan kaydın bulunabilmesi için bir arama kutusu eklemeniz ve sonuçları listview'a yükletmeniz gerek.
AccessTr.Net teknik konular içeren bir sitedir. Bu tip sitelerde en iyi şekilde yardım alabilmeniz için Site Kurallarını mutlaka okumanız ve buna göre hareket etmeniz lazım.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da