C# Programlama SQL Server WPF Form Örnekleri

WPF ile SQL Server Veri Tabanı Bağlantısı

Bu yazımızda C# WPF Form kullanarak Sql Server veritabanı bağlantısı kuracağız. Bu bağlantı örneğinde Temel Veritabanı İşlemleri (Select,Insert,Update,Delete) haricinde ayrıca Class kullanımı, DataBinding kullanımı, DataContext kullanımı,ObservableCollection kullanımı, Veri Filtreleme gibi konular hakkında da bilgi bulabilirsiniz. Projeyi kısaca açıklamak gerekirse;

Projemizde ticaret isimli Sql veritabanında bulunan musteri isimli tabloya bağlantı kuracağız. Form açıldığında musterilere ait ad ve soyad bilgisi sol tarafa yerleştirmiş olduğumuz listbox kontrolünde gelecek. Bu işlemi ItemTemplate ve DataTemplate kullanarak gerçekleştireceğiz.
Daha sonra listbox’ta tıklanan müşteriye göre detay bilgilerinin sağ tarafta bulunan textbox nesneleri ve Datetimepicker nesnesinde görüntülenmesini DataContext kullanarak gerçekleştireceğiz.

Buttonlarımız Ekleme, Silme ve Güncelleme işlemlerini gerçekleştirecek.Bu işlemlerde Sorgularımızı Parametre kullanarak oluşturacağız. Ayrıca Veri Çekme işlemi için Veritabanımıza uygun bir şekilde tasarladığımız Class yapısını kullanacağız.

Listbox kontrolünün üstünde yer alan textbox kontrolünü ise Veri filtrelemede kullanacağız. Veri filtreleme işlemini farklı bir yöntemle gerçekleştireceğiz. ObservableCollection koleksiyonunu List koleksiyonuna Linq komutlarını kullanarak filtreleyeceğiz ve listbox kontrolüne ItemSource özelliğini kullanarak bağlayacağız.

Projemize ait ticaret veritabanındaki musteri tablomuz:
vt1

Yeni bir WPF Form Application projesi oluşturarak projemize başlayalım.

İlk olarak Solution Explorer penceresinde Projemizin üstüne sağ tıklayarak Model isminde yeni bir klasör oluşturuyoruz. Daha sonra bu klasör üstünde yine sağ tıklayarak Add-Class diyoruz. Örneğimizde Class’ ımızın ismi Musteri.cs olarak verildi.

daire_class_1

Musteri isimli Sınıfımızı veritabanımızdaki alanlara uygun bir şekilde aşağıdaki gibi oluşturalım.

Musteri.cs:

Daha sonra form tasarımına geçiyoruz.

wpf_veri_tasarım

XAML kodlarını inceleyelim. Bilindiği gibi kontrolleri Toolbox’tan eklediğimiz zaman XAML kodları otomatik olarak eklenmekte. Fakat bizim burada müdahale etmemiz gereken bir kaç yer var.

Grid’ e bir isim veriyoruz. Örneğimizde Name=”grd1″ şeklinde ayarladık. Burada Grid layout’una isim vermemizin nedeni kod kısmında DataContext işleminde bu ismi kullanmamız gerektiği içindir.

Renklendirme ile ilgili XAML kısımlarını atlayabiliriz. Sizde tasarımıza Properties penceresinden istediğiniz gibi renk verebilirsiniz. XAML kodları otomatik olarak eklenecektir.

Listbox kontrolüne dikkat edelim. Burada ItemTemplate ve DataTemplate kullanımının yapıldığını görmekteyiz. Bu işlemleri yaptıktan sonra bağlantı sonrası listbox’ kontrolünde Ad ve Soyad bilgisinin görüntülenmesi sağlanacaktır.

Sırada TextBox kontrollerimiz var. Burada Text özelliklerini yukarıda gördüğünüz gibi Binding etmeniz gerekiyor. Burada Binding No, Binding Ad vs.. yazımlarının oluşturduğumuz Class alanlarına göre yapıldığını hatırlatalım.

wpf_sinif_tasarım

Şimdi C# tarafına geçelim.Öncelikle eklememiz gereken namespace’leri ekliyoruz. Burada en alttaki namespace sizin oluşturduğunuz proje ismine göre değişiklik gösterecektir. Uygun bir şekilde yazılması gerekir.

 

Daha sonra kullanacağımız bazı nesneleri public olarak tanımlayalım.

Bağlantı cümlemizi Form açıldığına hazır olacak şekilde kurucu metot içine yazıyoruz.

Daha sonra verilerin çekilmesi işlemini Listele isimli bir metot tanımlayarak gerçekleşiriyoruz. Bu metodu incelediğimizde Class yapısını ve ObservableCollection koleksiyonunu kullandığını görüyoruz.

Oluşturduğumuz metodu Form_Load kısmında çağıralım.

Bu işlem sonucunda Form açıldığında Listbox içine Müşteriye ait Ad ve Soyad Bilgisinin gelmesini sağladık.Şimdi de Listbox’ta tıklana kişinin detay bilgilerinin diğer Textbox’ lara gelmesini sağlayalım. Binding işleminin en güzel tarafını görelim. 🙂

Sırada temel veri tabanı işlemleri var. Yani Insert,Update ve Delete. Bu işlemler için Buttonlarımızı kullanıyoruz.

Kaydet :

Güncelle:

Sil:

Arama yani filtreleme işlemini listbox üzerinde bulunan textbox içeriği değiştiği zaman yani eşzamanlı olarak gerçekleştireceğiz. Bunun için textChanged olayına kodlarımızı aşağıdaki şekilde yazalım.

Böylelikle projemizi tamamlamış oluyoruz. Kodlarımızın tamamı aşağıdaki şekilde olacaktır.

Örneğe ait dosyaları ve veritabanını buradan indirebilirsiniz.

9 Yorum

  • Hocam saygılar, resmi yazışma takibi programı yapıyorum. WPF ve SQL kullanarak. Sol tarafta menüm var ve altı adet butonum var. Ortada content bölümünde user kontrollerle butonların üzerine geldikçe değiştiriyorum. Mesela gelen yazı butonuna tıkladığınızda pencerenin ortasında gelen yazının user kontrolü geliyor ve veritabanındaki gelen yazılar listelenmiiş şekilde önümüze çıkıyor. Buraya kadar yapabildim ama silme ve güncelleme butonlarını yapamadım. Ekleme butonunda ise veri tabanıyla c# arasında çözemediğim bir tarih uyumsuzluğu var. Hocam yardım ederseniz çok mutlu olurum. Son iki günüm kaldı, bankada staj yapıyorum ve işe başlamam bu projeye bağlı…

  • hocam merhabalar bu projenın yapılmış halını (butun gereklı dosyalarıyla bırlıkte email adresıme gönderirmisiniz umarım çok şey istemiş olmam bu kodları oşekilde inceleyip bu projedekı kullanımlardan yola cıkarak başka proje hazırlıycam çok tşk ederım mail adresıme gonderebılırsenız cok makbule gecer )ycl17041990@gmail.com

  • Merhaba.
    aynı örnek için forma bir datagrid ekleyin.

    https://yadi.sk/i/AGtj116KwMtNB

    listele metodunda listbox yerine datagrid’e itemssource ayarlayın.

    dg1.ItemsSource = musteriler;

    arama textbox’ında da yine aynı şekilde

    dg1.ItemsSource = filtre;

    şeklinde yaparsanız çalışacaktır.

    • hocam dediniz gibi yaptım oldu teşekkur ederim.
      birde arama tek seferde birden fazla sutunda arama yapabilirmiyiz. adı ile değilde aynı anda adı,soyadı, telefonunu arayabilirmiyiz.

      • Yapılabilir. filtreleme yapılan satırı aşağıdaki gibi değiştirirseniz. hem ad hem soyad alanında arama yapılacaktır.

        List filtre = musteriler.Where(x => x.Ad.ToLower().Contains(txtAra.Text.ToLower()) || x.Soyad.ToLower().Contains(txtAra.Text.ToLower())).ToList();

  • hocam hayırlı günler.
    müşteri fltresini listbox ile değilde datagrid ile arama yapılan bir örnek yapabilirmisiniz.

yucel için bir yanıt yazın X

Web Tasarım & Programlama sitesinden daha fazla şey keşfedin

Okumaya devam etmek ve tüm arşive erişim kazanmak için hemen abone olun.

Okumaya devam et