Anasayfa / Yazılım / C# / Öğrenci Otomasyonu Bölüm 2

Öğrenci Otomasyonu Bölüm 2

Yazımıza devam ediyoruz. İlk yazımızda veritabanımızı oluşturmuşuk isim olarak da OgrenciOtomasyonu adını vermiştik. Şimdi bu veritabanı dosyamısı projemize ekleyeceğiz. Visual studio da bir C# projesi oluşturun. File > New Project ve açılan ekranda Visual C# altında Windows ve orta kısımda Windows Form Application seçin, proje adı olarak ben OgrenciOtomasyonu adını verdim.

Ekranımda projem oluşturuldu. Şimdi menüden Tools menüsünü seçip, Connect To Database seçeniğini seçiyorum ve ekrana Choose Connection penceresi çıkıyor. Buradan kullanacağım veritabanı türünü seçiyorum, benim ki Acccess aşağıdaki şekilde seçimimi yaptım. Daha sonra continue diyorum.

2015050301

Ekrana Add Connection penceresi geliyor. Burada Database File Name alanında veritabanımın yerini göstermem gerekiyor, bilgilsayarımda yerini gösteriyorum. İstersek veritabanı için şifre ve kullanıcı adı oluşturabiliriz, ben yapmıyorum ve direkt ok diyorum.

2015050302

Daha sonra aşağıda görüleceği üzere sol tarafa server explorer kısmına veritabanımın eklendiğini görebiliyorum.

2015050303

Şimdi gelelim işin tasarımına. Biz tek bir form üzerinden veri kaydı, her bir mevcut kayda not girme, veri güncelleme, veri listeleme, veri arama, veri silme ve veri raporlama yapabilmek istiyoruz. Şimdi mevcut forma isim veriyorum. Bunun için form seçili iken sağ tarafta solution explorer altında yer alan properties alanında Name özelliğini AnaSayfaForm verdim, text özelliğini de öğrenci otomasyonu yapıyorum.

Şimdi bu anasayfa formumda ne işlemleri yapıcam. Listeyelim:

– Kayıt Ekleme
– Kayıt Güncelleme
– Kayıt Arama
– Kayıt Silme
– Not Girişi
– Kayıt Listeleme
– Raporlama

Dolayısı ile forma 7 adet buton ekleyeceğim. Tasarım yapıyoruz mümkün olduğunca kullanışlı bi tasarım olsun bari 🙂 Ben internetten konu ile alakalı olabilecek 7 adet icon resmi buldum. Hepsi de 128*128 boyunda.

Şimdi kısaca tüm özelliklere değinelim:

Formun arka plan rengini mavi yaptım. Üzerine 7 adet buton kontrolü ekliyorum ve her bir buton kontrolüm içinde label ekliyorum. Tasarımım aşağıdaki şekilde oluyor, buton boyutlarım 128*128.

OgrenciOtomasyonu_20150503

Şimdi buton nasıl eklenir, resim butona nasıl eklenir resmetmiyorum ancak kısaca değineyim. Her bir buton kontrolünün text özelliğine hiç bir şey yazmadım. Daha sonra bu butonların size özelliğini 128*128 yaptım. Ve her bir butonun BackgroundImage özelliğini Local bilgisayarımda dosyamın adresini göstererek ilgili butona import ettim.

Şimdi tasarımı bitirdiğinizi var sayıyorum. Butonlarımın adları benim için önemli. Kodlama yaparken buna dikkat etmem gerekiyor Buton adlarım şu şekilde:

Kayıt Ekleme: btnKayitEkle
Kayıt Güncelleme: btnKayitGuncelle
Kayıt Listeleme: btnKayitListele
Kayıt Arama: btnKayitAra
Kayıt Silme: btnKayitSil
Not Girme: btnNotGir
Raporlama: btnRaporAl

Şimdi üstteki tasarımı yaptıktan sonra, Kayıt Ekleme Formunu da tasarlayalım. Solution explorer penceresinde proje adına sağ tıklayın ve Add > Windows Form deyin. Burada çıkan ekranda ben form adını frmKayitEkle verdim. Şimdi bunun tasarımına geçelim. Yine forumu seçiyorum ve forumun backColor özelliğini renklendiriyorum. Ben mavi yaptım.

Bu form üzerinde şimdi iki tane GroupBox yer alacak. Bunların biri öğrenci bilgilerini tutacak, diğeri ise okul bilgilerini tutacak. İki adet groupbox ekleyin.

Birinin text özelliğinde Öğrenci Bilgileri, diğerinin text özelliğinde ise Okul Bilgileri yazdım. Daha sonra Okul Bilgileri groupboxı içine bir adet label ekledim. Text özelliğine Bölüm: yazdım. Daha sonra bir adet combobox ekledim. Bunun da adını şimdilik cmbBolum verdim.

Diğer Groupbox içine de 4 adet label ekliyoum. Text özellikleri sırası ile TC Kimlik No: , Ad Soyad: , Telefon No: , Doğum Tarihi olacak şekilde. Şimdi her birinin karşısına da şu komponentleri ekliyorum.

TC Kimlik No için bu label karşısına TextBox ekliyorum adını da txtTCKimlikNo verdim.
Ad Soyad için bu label karşısına TextBox ekliyorum adını da txtAdSoyad verdim.
Telefon Numarası için bu label karşısına masked textbox ekliyorum adını da msktxtTelefonNo verdim.
Doğum Tarihi için de bu label karşısına bir datetimepicker ekliyorum ve adını da dtpDogumTarihi verdim.

GroupBox dışına da bir adet buton ekledim, bu butonla da girmiş olduğum bilgileri kaydetme işlemi gerçekleştireceğim. Butonun text özelliği Kayıt Ekle, adını da btnEkle yaptım. Tasarımım şu anda aşağıdaki şekilde oluyor.

2015050304

Şimdi bir takım kurallarım var tabi onlara belirleyelim. Ben öğrenci kaydetmek istediğimde mutlaka bir TC Kimlik Numarası verisi gireceğim. Her halükarda bu numaranın girilmesini, bu numaranın ikinci defa girilememesini sağlamalıyım ve hatalı durumlarda kullanıcıya mesaj ile bilgilendirme yapmalıyım.

Daha sonra maskedtextbox ekledik örneğin burada da standart bir şekilde telefon numarası girilmesini sağlamam gerek. Bunu hatta şu anda tasarım aşamasında gerçekleştirebiliriz. Form üzerinde maskedtextboxımı seçiyorum ve özelliklerinden Mask özelliğini Phone Number olarak seçiyorum.

2015050305

Doğum Tarihi içinde kullandığım date time picker kontrolünün Format özelliğini Short yapıyorum.

2015050306

Birde öğrencilerin bölümleri olacak tabi. Ben bunuda şimdi combobox kontrolümde tutuyorum. Comboboxı seçiyorum ve Items özelliğini kullanarak 10 tane bölüm ekliyorum. Items özelliğine tıklayınca aşağıdaki gibi bir ekran geliyor ve her bir satıra bir bölüm adı gelecek şekilde alt alta yazıyorum.

2015050307

Hatta masked text box kullandım madem, TC Kimlik No alanımda masked text box olsun. Sadece 11 haneli bir sayı girilsin, böylelikle yanlış veri girilmesinin de önüne geçeriz. txtTCKimlikNo kontrolümü sildim ve yerine yeni bir masked text box ekledim. Bunun adını msktxtTCKimlikNo yapıyorum. Ve Mask özelliğini de aşağıdaki şekilde değiştiriyorum.

2015050308

Şimdi yavaş yavaş kodlama kısmına geçelim. Projemde iki tane formum var, anasyfamdaki formuma geliyorum ve buradaki Kayıt Ekleme butonuna çift tıklayarak bunun click olayına aşağıdaki kodları yazıyorum.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace OgrenciOtomasyonu
{
    public partial class AnaSayfaForm : Form
    {
        public AnaSayfaForm()
        {
            InitializeComponent();
        }

        private void btnKayitEkle_Click(object sender, EventArgs e)
        {
            frmKayitEkleme yeniForm = new frmKayitEkleme();
            yeniForm.Show();
        }
    }
}

Böylelikle artık projem çalıştırıldığında ana formda çıkan 7 butondan kayıt eklemeye bastığım anda artık ikinci formum açılacak.

Şimdi bizim yaptığımız işlemlerin hepsi bir veritabanı üzerinde gerçekleşen işlem. C# veritabanı üzerinde veri kaydı ekleme, veri güncelleme, veri arama, veri listeleme, veri silme, raporlama için ADO.NET teknolojinisi kullanır. ADO.NET’te kendi içinde veri işleyebilmek için bir takım sınıflar içerir. Bunlar SQL Server.NET, OleDb.NET gibi sınıflardır. Biz projemizde Access veritabanı kullandığımız için OleDB.Net bizim kullanacağımız sınıf oluyor. Dolayısı ile ben bazı OleDB.Net nesnelerini ve açıklamalarını da vereyim.

OleDBConnection : Veritabanı ile bağlantı oluşturmak için kullanılan nesnedir.
OleDBCommand: Oluşturulan sorguların çalıştırılması için kullanılan nesnedir.
OleDBDataReader: Bağlantı kurulan veritabanından, veri okuyabilmek için kullanılan nesnedir.
OleDBDataSet: Balantı kurulan veritabanından, veri okuyabilmek ve veri veri yazabilmek için kullanılan nesnedir.

Şimdi bizim bu nesneleri kullanabilmemiz için tabi projemize System.Data.OleDb sınıfını eklememiz gerekiyor. Bunun içinde veritabanı işlemi yapacağım her bir formun en başına System.Data.OleDb sınıfını dahil etmem gerektiğini unutmamalıyım. Şimdi ben her iki formuma da ekliyorum.

2015050309

Şimdilik bu kadar 🙂 Şu ana kadar geldiğimiz noktayı aşağıdan indirebilirsiniz.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir