doygundemirol@gmail.com

SQL Stored Procedure ile C# Kullanıcı Girişi Örnek Uygulaması

Merhabalar bu makalede SQL Stored Procedure ile C# Kullanıcı Girişi Örnek Uygulamasını anlatacağım. Buradaki makalede SQL Stored Procedure OUTPUT kullanımına değinmiştik. Sql de bulunan sp mize c# ile parametrelerimizi gönderip uygulamamızı gerçekleştirmiş olduk.

Öncelikle c# formu üzerinde oluşturdğumuz kontrollere gözatalım. Sp mizde dışardan gelecek kullanıcı adı ve şifre parametreleri için textBox1 ve textBox2 kontrollerini kullandık. Ve tabiki de bir adet button.

 

Örnek uygulamaya ait arayüz:

Bu forma ait c# kodları ise

Form1.cs


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
 
namespace KullaniciGirisiUygulamasi
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        public static string KullaniciID = "", KullaniciYetki = "";
 
        private void button1_Click(object sender, EventArgs e)
        {
            SqlConnection baglanti = new SqlConnection();
            baglanti.ConnectionString = @"Data Source=localhost; Initial Catalog=Veritabani; User Id=sa; Password=sifre;";
            
            try
            {
                if (baglanti.State == ConnectionState.Closed) baglanti.Open(); // Sql bağlantımızı kontrol ediyoruz. Kapalı ise açıyoruz
                SqlCommand Giris = new SqlCommand("KULLANICI_GIRISI", baglanti); // SQL sp mizi yazıyoruz. KULLANICI_GIRISI
                Giris.CommandType = CommandType.StoredProcedure; // Komut tipimizin sp olduğunu belirtiyoruz
                Giris.Parameters.Add("@KULLANICI_ADI", SqlDbType.Char).Value = textBox1.Text; // Sp mize giden KULLANICI_ADI parametresine textbox tan değer atıyoruz
                Giris.Parameters.Add("@SIFRE", SqlDbType.Char).Value = textBox2.Text; // Sp mize giden SIFRE parametresine textbox tan değer atıyoruz
                Giris.Parameters.Add("@Sonuc", SqlDbType.Int).Direction = ParameterDirection.Output; //Sp içinde tanımladığımız OUTPUT parametresi. 
                Giris.Parameters.Add("@KullaniciID", SqlDbType.Int).Direction = ParameterDirection.Output; //Sp içinde tanımladığımız OUTPUT parametresi. 
                Giris.Parameters.Add("@KullaniciYetki", SqlDbType.TinyInt).Direction = ParameterDirection.Output; //Sp içinde tanımladığımız OUTPUT parametresi. 
                Giris.ExecuteNonQuery(); // Sql komutumuzu çalıştırıyoruz
                if (Convert.ToInt32(Giris.Parameters["@Sonuc"].Value) == 1) 
                {
                    // Sp işletildikten sonra geriye dönen OUTPUT @Sonuc parametresini kontrol ediyoruz. Kullanıcı adı ve şifre bilgileri doğruysa sp @Sonuc parametresine 1 değerini atıyordu.
                   // Değer 1 olarak geri dönerse KullaniciID ve KullaniciYetki string değişkenlerine gelen parametre değerlerini atıyoruz
                    KullaniciID = Giris.Parameters["@KullaniciID"].Value.ToString();
                    KullaniciYetki = Giris.Parameters["@KullaniciYetki"].Value.ToString();
                    Form2 FRM = new Form2(); // Kullanıcı girişi doğuysa Form2 yi açıyoruz
                    FRM.Show();
                    this.Hide();
                }
                else
                {
                    MessageBox.Show("Kullanıcı adı veya şifre yanlış.", "Hata", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            catch (SqlException SQLHATA)
            {
                MessageBox.Show(SQLHATA.ToString(), "Hata", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                baglanti.Close();
            }
        }
    }
}

 

Asp.net Web formlarında veya C# formlarında bu şekilde sp ler ile çalışmak, bizi SQL injection gibi günümüzde hala etkin olarak kullanılan saldırılardan büyük ölçüde koruyacaktır.  Uygulamaya ait dosyaları buradan indirebilirsiniz. Herkese iyi çalışmalar...

 

Resim Galerisi