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
    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
 
Fikri olan var mı nasıl yapabileceğim hakkında.
 
Fikri olan var mı nasıl yapabileceğim hakkında.

Fikir vermişler zaten, nasıl bir şey istiyorsun? Veri tabanından yetkiyi alacaksın, giriş yap butonu içerisinde basit bir if else ile ilgi forma yönlendireceksin.
 
Fikir vermişler zaten, nasıl bir şey istiyorsun? Veri tabanından yetkiyi alacaksın, giriş yap butonu içerisinde basit bir if else ile ilgi forma yönlendireceksin.

Yapamadım ki yardım istiyorum boş yapmışsınız.
 
Yapamadım ki yardım istiyorum boş yapmışsınız.
Yapamadığın yer neresi yazdığın kodu atıp, nerde sorun yaşadığını söylersen daha kolay olur yardım bulman.
 
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
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…