Personel Kayıt Uygulaması Bölüm 2 Kullanıcı Giriş Paneli İşlemleri

Personel Kayıt Uygulaması Bölüm 2 Kullanıcı Giriş Paneli İşlemleri yazımıza devam etmeden önce bir önceki yazıyı gözden geçiriniz. Bunun için aşağıdkai linki kullanabilirsiniz. Eğer bitirdi iseniz devam edebilirsiniz.

AnaSayfa formumu bir önceki yazımda tasarladım. Bu arada ismini AnaSayfa.cs yaptım. Konrollerin TabIndex özelliklerini kullanarak sıra ile bir değer ataması işlemi yapıyorum. Böylelikle TAB tuşu ile birlikte kontroller üzerinde de sıra ile gezinme imkanım oluyor.

Ben bu uygulamam da bir de kullanıcı giriş paneli yapacağım. Kullanıcı adını ve şifre bilgisini de SQL’den alacağım. Bu kısmın veritabanı tablosunu ve form tasarımını yapalım.

SQL tarafına dönüyorum; aşağıdaki şekilde tablomu oluşturdum. Burada tablomu herhangi bir yerle ilişkilendirme vs yapmayacağım için ID tanımlama, primary key yapma gibi özelliklere ihtiyaç duymuyorum.

Personel Kayıt Uygulaması Bölüm 2 Kullanıcı Giriş Paneli İşlemleri

İki adette kayıt ekledim.

Personel Kayıt Uygulaması Bölüm 2 Kullanıcı Giriş Paneli İşlemleri

Kullanıcı tanımlama işlemini bu senaryomda SQL tarafından yapacağaım için, C# tarafında böyle bir işleme ihtiyaç duymayacağım. Orada sadece giriş işlemleri için giriş panelimi kullanacağım.

Bu giriş panelini tasarlamak için visual studioya dönüyorum. Projeye yeni bir windows form ekliyorum, formumun adını Giris yaptım. Tasarımım aşağıdaki gibi yapıyorum. Bir adet buton, 2 adet textbox ve 2 adet label var. Textbox isimlerim txtKullaniciAd ve txtSifre. Butonun name özelliği ise btnGiris. Text özelliklerini tasarımdan görebilirsiniz. TxtSifre kontrolümün UseSystemPasswordChar özelliğini True yapıyorum. Böylelikle bu alana değer girdiğimde girilen karakterler görülmeyecek, noktalar görülecek.

Personel Kayıt Uygulaması Bölüm 2 Kullanıcı Giriş Paneli İşlemleri

Şimdi gelelim Giris.cs içindeki kodlarımızı yazmaya:

Kod Açıklamaları:

Öncelikle kodlar bölümünde System.Data.SqlClient kütüphanemi ekledim. Bunu ekliyorum ki, SQL komutlarını kullanabileyim.

Akabinde global alanda sql bağlantı nesnemi oluşturdum.

Butonumun click eventine giriyorum.

Öncelikle bağlantımı açıyorum.

SQLCommand ile bir nesne üretiyorum, adını Giris verdim. Burada KullanıcıAd ve Sifre kolonlarım ile eşleşme durumunu kontrol edeceğim. Bu ikisi olması sebebi ile @p1 ve @p2 parametrelerini tanımladım.

SQL komutumu kullanarak, textboxlardan girilen değerleri ilgili parametrelere @p1 ve @p2 ye atıyorum. Yukarıda da bu parametreleri ilgili kolonlara atadım.

DataReader ile veriyi okuyorum. Eğer parametrelerim doğru ise AnaSayfa.cs açılacak, yanlış ise kullanıcıya mesajla bilgi verilecek.

Kodlara geçelim;

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;
using System.Data.SqlClient;

namespace PersonelBilgi
{
    public partial class Giris : Form
    {
        public Giris()
        {
            InitializeComponent();
        }

        //SQL Bağlantı nesnemi oluşturdum
        SqlConnection conn = new SqlConnection("Data Source=DESKTOP-FIUL2TU\\SQLEXPRESS;Initial Catalog=PersonelBilgi;Integrated Security=True");

        private void btnGiris_Click(object sender, EventArgs e)
        {
            //Bağlantımı açıyorumç
            conn.Open();

            //SQLCommand nesnemi oluşturdum. Burada @p1 parametresi KullanıcıAd kolonuma, @p2 parametresi ise Sifre kolonuma atanıyor.
            SqlCommand Giris = new SqlCommand("SELECT * FROM Kullanicilar WHERE KullaniciAd=@p1 and Sifre=@p2", conn);

            //SQL komutumu kullanarak, textboxlardan girilen değerleri ilgili parametrelere @p1 ve @p2 ye atıyorum. Yukarıda da bu parametreleri ilgili kolonlara atadım.
            Giris.Parameters.AddWithValue("@p1", txtKullaniciAd.Text);
            Giris.Parameters.AddWithValue("@p2", txtSifre.Text);


            //DataReader ile veriyi okuyorum. Eğer parametrelerim doğru ise AnaSayfa.cs açılacak, yanlış ise kullanıcıya mesajla bilgi verilecek.
            SqlDataReader dr = Giris.ExecuteReader();
            if(dr.Read())
            {
                AnaSayfa frm = new AnaSayfa();
                frm.Show();
                this.Hide();
            }
            else
            {
                MessageBox.Show("Kullanıcı adı ve/veya şifreniz yanlış");
            }

            //Bağlantımı kapatıyorum.
            conn.Close();
        }
    }
}

Şimdilik bu kadar 🙂

Bir cevap yazın

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