C# C# SQL butona basıldığında yetkiye göre panel açma

coolbassthe

Hectopat
Katılım
6 Temmuz 2021
Mesajlar
237
Çözümler
1
Daha fazla  
Cinsiyet
Erkek
C# SQL ile yaptığım uygulamada kişiye verilen yetkiye göre giriş yapıldığında form açılmasını istiyorum.
Örneğin 3 yetki var;
  • Yönetici
  • Çalışan
  • Müşteri

Giriş yapıldığında eğer çalışan ise çalışan panelini yönetici ise yönetici panelinin açılmasını istiyorum.

Bunu tek bir butona basıldığında yönlendirme ile yapabilir miyim yoksa 3 farklı giriş içinde ayrı yer mi yapmalıyım?
 

Dosya Ekleri

  • 1684664851361.png
    1684664851361.png
    9,6 KB · Görüntüleme: 99
Son düzenleyen: Moderatör:
Tek bir buton ile yapabilirsin. SQL'den kullanıcının yetkisini alır ve bir karar yapısı ile istediğin forma yönlendirirsin.
 
data kısmında verdiğin kişilerine göre farklı atama yapman lazım
Örnek admin kullanıcısı normal diğer kullancılar gibi giriş yap diyince arkada admin datasında onun arayüzü yönetici olucak şekilde kodlarını yazman lazım yada çalışan ise datasında farklı olucak şekilde .Dilimin ucunda söylicem ama şuan aklıma gelmiyor kodlar
 
C#:
private void btnGirisYap_Click(object sender, EventArgs e)
        {
            SqlCommand sqlGiris = new SqlCommand("SELECT * FROM musteriBilgileri where KullaniciAdi=@p1 AND sifre=@p2", baglanti);
            sqlGiris.Parameters.AddWithValue("@p1", txtKullaniciAdi.Text);
            sqlGiris.Parameters.AddWithValue("@p2", txtSifre.Text);
            baglanti.Open();
            dr = sqlGiris.ExecuteReader();
            if (dr.Read())
            {
                if (dr.Read())
                {
                    SqlCommand sqlMusteriYetkisi = new SqlCommand("SELECT * FROM musteriBilgileri where KullaniciAdi=@p1 AND sifre=@p2 and yetkiseviyesi = 0", baglanti);
                    sqlMusteriYetkisi.Parameters.AddWithValue("@p1", txtKullaniciAdi.Text);
                    sqlMusteriYetkisi.Parameters.AddWithValue("@p2", txtSifre.Text);
                    dr = sqlMusteriYetkisi.ExecuteReader();
                    if (dr.Read())
                    {
                        MusteriPaneli frMusteriPaneli = new MusteriPaneli();
                        this.Hide();
                        frMusteriPaneli.Show();
                    }
                    else if()
                    {
                        SqlCommand sqlYoneticiYetkisi = new SqlCommand("SELECT * FROM musteriBilgileri where KullaniciAdi=@p1 AND sifre=@p2 and yetkiseviyesi = 2", baglanti);
                        sqlYoneticiYetkisi.Parameters.AddWithValue("@p1", txtKullaniciAdi.Text);
                        sqlYoneticiYetkisi.Parameters.AddWithValue("@p2", txtSifre.Text);
                        dr = sqlYoneticiYetkisi.ExecuteReader();
                        if (dr.Read())
                        {
                            YoneticiPaneli frYoneticiPaneli = new YoneticiPaneli();
                            this.Hide();
                            frYoneticiPaneli.Show();
                        }
                    }
                    else
                    {
                        SqlCommand sqlCalisanYetkisi = new SqlCommand("SELECT * FROM musteriBilgileri where KullaniciAdi=@p1 AND sifre=@p2 and yetkiseviyesi = 1", baglanti);
                        sqlCalisanYetkisi.Parameters.AddWithValue("@p1", txtKullaniciAdi.Text);
                        sqlCalisanYetkisi.Parameters.AddWithValue("@p2", txtSifre.Text);
                        dr = sqlCalisanYetkisi.ExecuteReader();
                        if (dr.Read())
                        {
                            calisanPaneli frCalisanPaneli = new calisanPaneli();
                            this.Hide();
                            frCalisanPaneli.Show();
                        }






                    }
                }
                else
                {
                    MessageBox.Show("Kullanıcı adını ve şifrenizi kontrol ediniz. Şifrenizi Unuttuysanız Yeni Şifre Belirleyebilirsiniz.");
                }
                baglanti.Close();
            }
        }
    }

Bu yarım hali ne yapsam olmuyor.
Else iflerin içine ne yazmalıyım?

Yazdığım koda göre öncelikle kullanıcı adı ve şifreyi kontrol ediyor ardından if döngüsüne giriyor kullanıcı adı ve şifrenin yanında tek tek yetkileri kontrol edip ona göre form açıyor yapmaya çalıştığım bu.
 
C#:
private void btnGirisYap_Click(object sender, EventArgs e)
        {
            SqlCommand sqlGiris = new SqlCommand("SELECT * FROM musteriBilgileri where KullaniciAdi=@p1 AND sifre=@p2", baglanti);
            sqlGiris.Parameters.AddWithValue("@p1", txtKullaniciAdi.Text);
            sqlGiris.Parameters.AddWithValue("@p2", txtSifre.Text);
            baglanti.Open();
            dr = sqlGiris.ExecuteReader();
            if (dr.Read())
            {
                if (dr.Read())
                {
                    SqlCommand sqlMusteriYetkisi = new SqlCommand("SELECT * FROM musteriBilgileri where KullaniciAdi=@p1 AND sifre=@p2 and yetkiseviyesi = 0", baglanti);
                    sqlMusteriYetkisi.Parameters.AddWithValue("@p1", txtKullaniciAdi.Text);
                    sqlMusteriYetkisi.Parameters.AddWithValue("@p2", txtSifre.Text);
                    dr = sqlMusteriYetkisi.ExecuteReader();
                    if (dr.Read())
                    {
                        MusteriPaneli frMusteriPaneli = new MusteriPaneli();
                        this.Hide();
                        frMusteriPaneli.Show();
                    }
                    else if()
                    {
                        SqlCommand sqlYoneticiYetkisi = new SqlCommand("SELECT * FROM musteriBilgileri where KullaniciAdi=@p1 AND sifre=@p2 and yetkiseviyesi = 2", baglanti);
                        sqlYoneticiYetkisi.Parameters.AddWithValue("@p1", txtKullaniciAdi.Text);
                        sqlYoneticiYetkisi.Parameters.AddWithValue("@p2", txtSifre.Text);
                        dr = sqlYoneticiYetkisi.ExecuteReader();
                        if (dr.Read())
                        {
                            YoneticiPaneli frYoneticiPaneli = new YoneticiPaneli();
                            this.Hide();
                            frYoneticiPaneli.Show();
                        }
                    }
                    else
                    {
                        SqlCommand sqlCalisanYetkisi = new SqlCommand("SELECT * FROM musteriBilgileri where KullaniciAdi=@p1 AND sifre=@p2 and yetkiseviyesi = 1", baglanti);
                        sqlCalisanYetkisi.Parameters.AddWithValue("@p1", txtKullaniciAdi.Text);
                        sqlCalisanYetkisi.Parameters.AddWithValue("@p2", txtSifre.Text);
                        dr = sqlCalisanYetkisi.ExecuteReader();
                        if (dr.Read())
                        {
                            calisanPaneli frCalisanPaneli = new calisanPaneli();
                            this.Hide();
                            frCalisanPaneli.Show();
                        }






                    }
                }
                else
                {
                    MessageBox.Show("Kullanıcı adını ve şifrenizi kontrol ediniz. Şifrenizi Unuttuysanız Yeni Şifre Belirleyebilirsiniz.");
                }
                baglanti.Close();
            }
        }
    }

Bu yarım hali ne yapsam olmuyor.
Else iflerin içine ne yazmalıyım?

Yazdığım koda göre öncelikle kullanıcı adı ve şifreyi kontrol ediyor ardından if döngüsüne giriyor kullanıcı adı ve şifrenin yanında tek tek yetkileri kontrol edip ona göre form açıyor yapmaya çalıştığım bu.
Yetki seviyesini neden kontrol ediyorsun ki? Kullanıcı girişi yaptığın ilk sorguda geriye kullanıcının bilgilerini döndürürken yetki seviyesini döndür ve bir değişkene at.
Sonra yetki seviyesi değerini kullanarak form yönlendirmesini yapabilirsin.

Basitçe if else bloklarında yetki değişkenini kontrol ediceksin. Blokların içinde tekrar sql query çalıştırmanın bir mantığı yok.
 
C#:
SqlCommand sqlGiris = new SqlCommand("SELECT * FROM musteriBilgileri where KullaniciAdi=@p1 AND sifre=@p2", baglanti);
            sqlGiris.Parameters.AddWithValue("@p1", txtKullaniciAdi.Text);
            sqlGiris.Parameters.AddWithValue("@p2", txtSifre.Text);
            baglanti.Open();
            dr = sqlGiris.ExecuteReader();
            while (dr.Read())
            {
                yetkiseviyesi = Int32.Parse(dr["yetkiseviyesi"].ToString());
            }
            if (yetkiseviyesi == 0)
            {
                MusteriPaneli frMusteriPaneli = new MusteriPaneli();
                this.Hide();
                frMusteriPaneli.Show();
            }
            if (yetkiseviyesi == 1)
            {
                calisanPaneli frCalisanPaneli = new calisanPaneli();
                this.Hide();
                frCalisanPaneli.Show();
            }
            if (yetkiseviyesi == 2)
            {
                YoneticiPaneli frYoneticiPaneli = new YoneticiPaneli();
                this.Hide();
                frYoneticiPaneli.Show();
            }


Bu şekilde yaptım teşekkür ederim
 

Technopat Haberler

Yeni konular

Geri
Yukarı