C# Access İlişkili Tablodan Veri Çekme (İl – İlçe Veritabanı) – Ahmet Cansever
Cuma , 24 Mart 2017
Anasayfa » ACCESS » C# Access İlişkili Tablodan Veri Çekme (İl – İlçe Veritabanı)

C# Access İlişkili Tablodan Veri Çekme (İl – İlçe Veritabanı)

Bu yazımızda ilişkili veritabanından veri çekme işlemini anlatan bir örnek gerçekleştireceğiz. Veritabanı olarak Access’ te hazırlanmış iller.accdb dosyasını kullanacağız. Örneğimizde Combobox1′ de seçilen şehir ismine göre Combobox2′ de ilçe gösterimini sağlayacağız. İller ve ilçelerin bulunduğu dosyayı yazımızın sonunda bulunan linkten indirebilirsiniz.

Öncelikle iller.accdb uzantılı veritabanımıza bakalım.
il_ilce_vt_1     il_ilce_vt_2

Veritabanımız 2 tablodan oluşmakta. “iller” tablosu ve “ilceler” tablosu. Yukarıdaki resimlerde bu tablolara ait alan adlarını görmekteyiz. Yeni bir C# Windows Form projesi oluşturarak örneğimize başlayalım. Form tasarımımızı basit bir şekilde 2 adet comboBox kontrolü ekleyerek oluşturalım.

il_ilce_3

Veritabanı dosyamızı Projemizin altında bulunan “../Bin/Debug” klasörü altına kopyalayarak devam ediyoruz. Şimdi yapacağımız işlem C# ile Access arasında bir veritabanı bağlantısı oluşturarak Form Yüklendiğinde yani Form_Load olayına  Şehir listelemesinde kullanacağımız Combobox1′ e verileri çekmek olacak. Burada Combobox kontrolünün ValueMember ve DisplayMember özelliklerini kullanacağız.  Combobox’ ın Valuemember’ ına “iller” tablosunun “id” alanını DisplayMember’ ına ise “sehir” alanını bağlayacağız.

Kodlarımıza geçelim.

Öncelikle projemize;

dahil ediyoruz.
Daha sonra public olarak;

bağlantı nesnemizi oluşturuyoruz. Form_Load event’ ı için;

kodlarını yazıyoruz. Şimdi Combobox’ta seçilen il’ e göre diğer Combobox’ ta sehirlerin gösterilmesini sağlayacağız. Bunun için comboBox1′ in SelectedIndexChanged event’ ını kullanacağız. Kodlarımızı aşağıdaki şekilde oluşturuyoruz.

İşlem tamam.

Kodlarımızın tamamlanmış hali ve ekran görüntüsü ise şu şekilde olacaktır.

il_ilce

Örneği ve veritabanını indirebilirsiniz.
https://yadi.sk/d/-Uf4PmV5qb8fs

Hakkında admin

17 Yorumlar

  1. Gökhan ÖZTÜRK

    Her ilçenin en ünlü yemeklerini hazırladığım bir liste olduğunu farz ediyorum ve İl ve ilçeyi seçince label1’e o ilçenin en meşhur yiyeceğini getirmek istiyorum. Bunun kodunu nasıl yazabilirim?? Yardımcı olur musunuz??

  2. Gökhan ÖZTÜRK

    Arkadaşlar bu linkten ben tabloyu indiremiyorum yardımcı olur musunuz?

  3. Merhaba Ahmet Bey;
    Veri tabanındaki kayıtları sırası ile textboxlara aktarmak için örnek arıyorum ama bulamadım. Textboxlara veri aktarımı için örnek çalışmanız var mı ya da bu konuda yardımcı olabilir misiniz?

  4. dostum selamlar. sql sorgusunu

    “select il from iller ORDER BY id ASC ”

    ve

    “select ilce from ilceler where sehir = ”

    yapınca sorun yaşıyorum ve “da.Fill(dt);” satırında “Gerekli bir veya daha fazla parametre için girilen değer yok.” hatası alıyorum. sebebi ne olabilir? aynı sorguyu accesste çalıştırdığımda hata almıyorum.

    • Sorguyla ilgili bir hata görünüyor. Sorgunun tamamını yollarsanız daha net anlaşılabilir.

      • teşekkürler geri dönüş için hocam.

        sizin iki sorgunuz sırasıyla şu şekilde;

        OleDbDataAdapter da = new OleDbDataAdapter(“select * from iller ORDER BY id ASC “, con);

        OleDbDataAdapter da = new OleDbDataAdapter(“select * from ilceler where sehir = ” + comboBox1.SelectedValue, con);

        benimkiler ise şöyle;

        OleDbDataAdapter da = new OleDbDataAdapter(“select SehirAdi from SehirListesi”, con);

        OleDbDataAdapter da = new OleDbDataAdapter(“select IlceAdi from IlceListesi where SehirID = ” + comboBox1.SelectedValue, con);

        diğer alanlarda herhangi bir farklılık yok.

        select * kullanırsam çalışıyor, ama tablodan belli bir alanı çağırmak istediğimde çalışmıyor.

        • Projeyi sıkıştırıp yollarsan pazartesi kontrol edebilirim dfsdfsdf.

          • http://s5.dosya.tc/server/7yi5os/HastaneKayit.rar.html

            sorun HastaKayıt formunda hocam. seçilen polikliniğe göre doktor getirmek istiyorum. veritabanı da dosyanın içinde. ilişkilerde sorun yok, polikliniğe göre doktorları görebiliyorum. şimdiden çok teşekkürler.

          • Merhaba. Projenizdeki sorun PoliklinikGetir metodunda.

            //OleDbDataAdapter da = new OleDbDataAdapter(“select PoliklinikAdi from PoliklinikBilgi ORDER BY PoliklinikID ASC”, baglanti);
            OleDbDataAdapter da = new OleDbDataAdapter(“select * from PoliklinikBilgi ORDER BY PoliklinikID ASC”, baglanti);

            Üstteki sizin yazdığınız kod. Sadece Poliklinik adını çektiğiniz için ID leri almıyor. Select * From ….. olarak değiştirirseniz ilgili doktorlar gelecektir.

          • lsdflsdfldf salaklığıma gülüyorum ya, o kadar uğraşmama rağmen nasıl fark edememişim. çok ama çok teşekkür ederim hocam, gerçekten çok yardımcı oldunuz 🙂

          • Sorun değil. Olabilir böyle şeyler. 🙂

  5. Veritabanı adı,Tablo adı ve Alan adlarını doğru yazıp yazmadığınızı tekrar kontrol edin.

  6. hocam öncelikle paylaşım için teşekkür ederim. combobox’ın selectedindex olayına kodları yazdığımda “da.Fill(dt);” satırında “Gerekli bir veya daha fazla parametre için girilen değer yok.” hatası alıyorum. yardımcı olursanız çok memnun olurum. kolay gelsin.

Yorum Yap

Wordpress Tema indir