8.2 – Formdan Öğrenci Bilgisi Alma


📘 8.2 – Formdan Öğrenci Bilgisi Alma


🔹 Açıklama:

Bu başlık altında, form üzerinde bulunan kontrollerden (TextBox, ComboBox, NumericUpDown vb.) alınan bilgileri, daha önce tanımladığımız Ogrenci sınıfı aracılığıyla bir nesneye dönüştürmeyi öğreneceğiz. Bu yaklaşım, arayüz ile veri yapısı arasında doğru, temiz ve güvenli bir köprü kurulmasını sağlar.


📍 Kullanım Alanları:

  • Öğrenci bilgi sistemi uygulamaları
  • Kayıt formları
  • Sınav değerlendirme sistemleri
  • Veritabanına kayıt yapılmadan önce doğrulama ve modelleme

🎯 Kazanımlar:

  • Form kontrollerinden gelen veriyi alıp nesneye aktarma
  • Kullanıcıdan alınan verileri veri modeliyle birleştirme
  • Form tabanlı giriş ile nesne tabanlı veri yapısı arasında geçiş sağlama
  • Kullanıcı girişlerinde doğrulama ve kontrolün sınıf düzeyine taşınması
  • Uygulamalarda veri ile işlem mantığını ayırma becerisi kazanma

🧪 8.2 – Formdan Öğrenci Bilgisi Alma: Uygulamalı 5 Örnek


📌 Örnek 1: Ad, Soyad, Numara Bilgisi Alarak Öğrenci Oluşturma

🎨 Form Elemanları:

  • txtAd, txtSoyad, txtNumara, btnKaydet, lblDurum

💻 Kod:

public class Ogrenci
{
    public string Ad { get; set; }
    public string Soyad { get; set; }
    public int Numara { get; set; }

    public string Bilgi()
    {
        return $"Ad: {Ad} {Soyad} - No: {Numara}";
    }
}

// Form tarafı
private void btnKaydet_Click(object sender, EventArgs e)
{
    Ogrenci ogr = new Ogrenci();
    ogr.Ad = txtAd.Text;
    ogr.Soyad = txtSoyad.Text;
    ogr.Numara = Convert.ToInt32(txtNumara.Text);

    lblDurum.Text = ogr.Bilgi();
}

📝 Açıklama:

Formdan alınan veriler, Ogrenci nesnesine aktarıldı ve ekranda bilgi verildi.


📌 Örnek 2: NumericUpDown ile Numara Girişi

🎨 Form Elemanları:

  • txtAd, txtSoyad, nudNumara, btnOlustur, lblOzet

💻 Kod:

private void btnOlustur_Click(object sender, EventArgs e)
{
    Ogrenci ogr = new Ogrenci
    {
        Ad = txtAd.Text,
        Soyad = txtSoyad.Text,
        Numara = (int)nudNumara.Value
    };

    lblOzet.Text = ogr.Bilgi();
}

📝 Açıklama:

nudNumara ile sayı girişi daha güvenli hale getirilmiştir.


📌 Örnek 3: ComboBox ile Sınıf Seçimi

🎨 Form Elemanları:

  • txtAd, txtSoyad, txtNumara, cmbSinif, btnKaydet, lblSonuc

💻 Kod:

public class Ogrenci
{
    public string Ad { get; set; }
    public string Soyad { get; set; }
    public int Numara { get; set; }
    public string Sinif { get; set; }

    public string Bilgi()
    {
        return $"{Ad} {Soyad} ({Sinif}) - {Numara}";
    }
}

// Form tarafı
private void btnKaydet_Click(object sender, EventArgs e)
{
    Ogrenci ogr = new Ogrenci();
    ogr.Ad = txtAd.Text;
    ogr.Soyad = txtSoyad.Text;
    ogr.Numara = Convert.ToInt32(txtNumara.Text);
    ogr.Sinif = cmbSinif.SelectedItem.ToString();

    lblSonuc.Text = ogr.Bilgi();
}

📝 Açıklama:

ComboBox ile sınıf seçimi eklendi, nesneye farklı bir özellik dahil edildi.


📌 Örnek 4: Try-Catch ile Hatalı Giriş Kontrolü

🎨 Form Elemanları:

  • txtAd, txtNumara, btnEkle, lblUyari

💻 Kod:

private void btnEkle_Click(object sender, EventArgs e)
{
    try
    {
        Ogrenci ogr = new Ogrenci
        {
            Ad = txtAd.Text,
            Numara = Convert.ToInt32(txtNumara.Text)
        };

        lblUyari.Text = ogr.Bilgi();
    }
    catch (FormatException)
    {
        lblUyari.Text = "Numara geçerli bir sayı değil!";
    }
}

📝 Açıklama:

Kullanıcıdan gelen veri kontrol altına alındı. Hatalı girişlerde uygulama çökmez.


📌 Örnek 5: Form Verilerini Doğrulayıp Mesaj Kutusu ile Gösterme

🎨 Form Elemanları:

  • txtAd, txtSoyad, txtNumara, btnGoster

💻 Kod:

private void btnGoster_Click(object sender, EventArgs e)
{
    if (string.IsNullOrWhiteSpace(txtAd.Text) || string.IsNullOrWhiteSpace(txtSoyad.Text))
    {
        MessageBox.Show("Ad ve soyad boş olamaz!");
        return;
    }

    Ogrenci ogr = new Ogrenci
    {
        Ad = txtAd.Text,
        Soyad = txtSoyad.Text,
        Numara = Convert.ToInt32(txtNumara.Text)
    };

    MessageBox.Show(ogr.Bilgi(), "Öğrenci Bilgisi");
}

📝 Açıklama:

Boş girişler engellendi ve bilgiler MessageBox ile kullanıcıya sunuldu.


✅ Özet:

Bu örneklerle öğrenciler:

  • Form kontrollerinden nesneye veri aktarmayı
  • UI üzerinden alınan bilgiyi Entity sınıfında toplamayı
  • Kullanıcı hatalarını yönetmeyi ve verileri doğrulamayı
  • Gerçekçi formlarla uygulama geliştirmeyi öğrendiler

Leave a Reply