Bu örneğimizde C# Windows Form ile basit bir kullanıcı girişi (Login Form) oluşturacağız. Örneğimizde Sql Server veritabanı bağlantısı oluşturarak bu veritabanında kayıtlı kullanıcı adı ve şifre kontrolünü gerçekleştirip girişin başarılı veya başarısız olduğu mesajını vereceğiz.
Örneğimize ilk olarak kullanıcı adı ve parolaların kaydedileceği veritabanını tasarlayarak başlayalım.
Kullanacağımız veritabanına dbLogin ismini verelim. Daha sonra tblUser isimli bir tablo oluşturarak bu tabloda aşağıdaki alanları oluşturalım.
Şimdide tablomuza deneme amaçlı bir kaç kayıt ekleyelim.
Veritabanı ile ilgili işlemlerimiz bitti. Şimdi Visual Studio’ da yeni bir C# Windows Form Uygulaması oluşturarak Form tasarımını aşağıdaki gibi oluşturalım.
TextBox1 Name özelliğini txtUser olarak; TextBox2 Name özelliğini txtPass olarak değiştirelim.
Şimdi kod kısmına geçiyoruz. İlk olarak Sql bağlantısı kurabilmek için gerekli aşağıdaki satırı projemize ekleyelim.
1 2 3 |
using System.Data.SqlClient; |
Daha sonra aşağıdaki global değişkenlerimizi tanımlayalım.
1 2 3 4 5 |
SqlConnection con; SqlCommand cmd; SqlDataReader dr; |
Şimdide giriş butonu için kodlarımızı oluşturalım.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
private void button1_Click(object sender, EventArgs e) { string sorgu = "SELECT * FROM tblUser where usr=@user AND pwd=@pass"; con = new SqlConnection("server=.; Initial Catalog=dbLogin;Integrated Security=SSPI"); cmd = new SqlCommand(sorgu,con); cmd.Parameters.AddWithValue("@user", txtUser.Text); cmd.Parameters.AddWithValue("@pass", txtPass.Text); con.Open(); dr = cmd.ExecuteReader(); if (dr.Read()) { MessageBox.Show("Tebrikler! Başarılı bir şekilde giriş yaptınız. https://yazilimkodlama.com"); } else { MessageBox.Show("Kullanıcı adını ve şifrenizi kontrol ediniz."); } con.Close(); } |
Yukarıda yazmış olduğumuz kodlar kullanıcı adı ve şifre girilen textbox verilerini alarak veritabanında olup olmadığını kontrol etmekte.
Biz örneğimizde yeni bir form açmak yerine MessageBox penceresinde kontrolünü gerçekleştiriyoruz. Bu kısımda farklı bir Form açarak devam edebilirsiniz
Çıkış butonu içinde Login Form penceresini kapatacak olan aşağıdaki kodu yazalım.
1 2 3 4 5 6 |
private void button2_Click(object sender, EventArgs e) { Application.Exit(); } |
Kodlarımızı tamamlamış olduk. Şimdi bir kaç deneme yapalım.
Projemizi tamamlamış olduk.
Kodlarımızın tamamı aşağıdaki şekilde görünecektir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
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 cce_login_form_with_sql { public partial class Form1 : Form { SqlConnection con; SqlCommand cmd; SqlDataReader dr; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { string user = txtUser.Text; string pass = txtPass.Text; con = new SqlConnection("server=DESKTOP-JU1LJ2M\\SQLEXPRESS; Initial Catalog=dbLogin;Integrated Security=SSPI"); cmd = new SqlCommand(); con.Open(); cmd.Connection = con; cmd.CommandText = "SELECT * FROM tblUser where usr='" + txtUser.Text + "' AND pwd='" + txtPass.Text + "'"; dr = cmd.ExecuteReader(); if (dr.Read()) { MessageBox.Show("Tebrikler! Başarılı bir şekilde giriş yaptınız. https://yazilimkodlama.com"); } else { MessageBox.Show("Kullanıcı adını ve şifrenizi kontrol ediniz."); } con.Close(); } private void button2_Click(object sender, EventArgs e) { Application.Exit(); } } } |
string user = txtUser.Text;
string pass = txtPass.Text; kullanmayacaksak neden tanımladık?
sanki kullanıyor gibi
Kodlar yeniden düzenlendi.
tamamdır, ben oracle a uyarladım, başarılı oldu. elinize sağlık
yetkili yada personel girişi için iki buton yap aynı giriş formunu kopyala ikisi icin butona tıkladığında oraya yönlendir ikide tablo olustur sqlde
Teşekkürler bu bilgi için, peki ben admin ve personel için farklı formlara yönlendirmek istiyorsam bu yetkileri ayırmak için nasıl bir sorgu kullanmam lazım?
biraz geç bir cevap oluycak ama daha sonra bu konuyu ziyaret edecekler için bir cevap olsun diye yazıyorum.
sql tabloya role tanımlayıp, role sütunundan değer çekerek if else ile farklı formlara yönlendirebilirsin.