23 Temmuz 2013 Salı

C# : Access'ten ComboBox'a Veri Çekme

          Projelerimizde kimi zaman kullandığımız nesnelere veri tabanımızdan veri çekme gereği duyarız. Bu veri çekme işlemini iki şekilde yapabiliriz. Bunlardan birincisi kod ile ikincisi ise manuel bir şekilde nesnelerin özelliklerini kullanarak tasarım aşamasındayken. Biz burada SQL ve C# kodlarını kullanarak yapacağız. ComboBox'a access üzerinden nasıl veri çekeceğimizi adım adım göstereceğiz.

1. Öncelikle veri çekeceğimiz veri tabanının yüklü olması gerekmektedir. Yüklü değilse bunu yükleyeceğiz. Bu yükleme işlemini tıklayarak buradaki gibi adım adım yapacağız.

2. Access'ten veri çekebilmemiz ve access veri tabanı işlemleri için Data ve Data.OleDb sınıflarını projemize eklemek zorundayız.


3. Eklediğimiz access veri tabanı ile projemiz arasında bağlantı kurmamız gerekiyor. Bunun için OleDbConnection bağlantı nesnesini kullanacağız.

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" yolu mdb ve accdb uzantılı access dosyalarında farklılık göstermektedir. Bunu Server Explorer penceresine tıklayıp Properties penceresinde Connection String alanından bakarak kullanacağımız yolu bulabiliriz. Adres uzantısını Application.Startup kod parçacığı ile değiştirirsek veri tabanımız verileri projemizdeki ekli olan kaynaktan alacaktır.

4.  SQL sıralama sorgusunu kullanıyoruz.

5.
          Bu kod parçası ile urun_kayit tablosundaki tüm verileri listeliyoruz. Listeleme işlemi olduğu için OleDbCommand ' ın  ExecuteReader özelliğini kullanıyoruz. Okuma işleminden sonra ComboBox'a verilerin okutulması için data değişkenine atıyoruz.

6. data değişkenimize aktarılan verileri veriler okunana kadar istenilen işlemin yapılması için while döngüsünü kullanıyoruz. SQL sorgumuzda urun_kayit ' taki tüm verileri okutmuştuk. Aşağıdaki şekilde data değişkeni üzerinde sadece urun_adi sütunundaki verileri alması için bunu köşeli parantez içinde belirtmemiz gerekmektedir.

Kodun Tamamı


5 yorum:

  1. Bu yorum yazar tarafından silindi.

    YanıtlaSil
  2. Kolay gelsin cevap güzel ama benim ihtiyacım olan bişey var
    4 adet combox'a veri çekmek istiyorum.Bunu sağlayan kodu yazarmısınız ?

    YanıtlaSil
    Yanıtlar
    1. BindingSource kullanmayı deneyin daha rahat işler yapacaksınız ve kodlara neredeyse hiç bulaşmayacaksınız ama kod bölümündende bindingsource kullanmayı deneyebilirsiniz.

      Sil
  3. veritabanımdaki sütünların 3 tanesini ayrı ayrı combolara çekmek istiyorum.yazdığın kodların aynısını yapınca ilk baştaki geldi ama diğerleri gelmedi.diğerlerini nasıl yaparım

    YanıtlaSil
  4. sadece 1.elemanın adını çekiyor diğerlerini çekmiyor neden ?

    YanıtlaSil