C# C# SQL giriş yap & şifremi unuttum nasıl yapılır?

coolbassthe

Decapat
Katılım
6 Temmuz 2021
Mesajlar
226
Çözümler
1
Daha fazla  
Cinsiyet
Erkek
Merhaba C# SQL ile yaptığım projede şifremi unuttum kısmı yapmak istedim ama pek yapamadım gibi.

1684590341951.png


Kullanıcı adını ve gizli soru cevabını doğru bilirse sağdakilerin açılması gerekiyor(default olarak hide) sonrasında girilen şifrenin SQL üzerinden güncellenmesi gerekiyor Update komuduyla yapmaya çalıştım ama yapamadım nasıl yapabilirim?
 
C#:
SqlConnection baglanti = new SqlConnection("Data Source=DESKTOP-BBL6OD5\\SQLEXPRESS;Initial Catalog=OtoGaleri;Integrated Security=True");
        SqlCommand cmd;
        SqlDataReader dr;
        private void button1_Click(object sender, EventArgs e)

        {
            try
            {
                string sorgu = "SELECT * FROM musteriBilgileri where gizlisoru=@p1 AND gizlisorucevap=@p2";
                cmd = new SqlCommand(sorgu, baglanti);
                cmd.Parameters.AddWithValue("@p1", cmbGizliSoru.Text);
                cmd.Parameters.AddWithValue("@p2", txtGizliSoruCevap.Text);
                baglanti.Open();
                dr = cmd.ExecuteReader();
                if (dr.Read())
                {
                    lblSifre.Visible = true;
                    lblYenidenSifre.Visible = true;
                    txtYenidenYeniSifre.Visible = true;
                    txtYeniSifre.Visible = true;
                    btnSifreyiOnayla.Visible = true;
                }
                baglanti.Close();

            }
            catch
            {
                MessageBox.Show("Girdiğiniz bilgiler yanlış lütfen tekrar deneyin.","Uyarı",MessageBoxButtons.OK,MessageBoxIcon.Warning);
            }
        }

Bu güvenlik sorusunun kontrol edildiği kod fakat doğru çalışmıyor.

C#:
{

            if (txtYeniSifre.Text != txtYenidenYeniSifre.Text)
            {
                MessageBox.Show("Girdiğiniz şifreler uyuşmuyor!", "Uyarı", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                baglanti.Open();
                SqlCommand sqlSifreGuncelle = new SqlCommand("update musteribilgileri set sifre=@p1", baglanti);
                sqlSifreGuncelle.Parameters.AddWithValue("@p1",txtYenidenYeniSifre.Text);
                sqlSifreGuncelle.ExecuteNonQuery();
                baglanti.Close();
                DialogResult onay = MessageBox.Show("Şifrenizi başarıyla değiştirdiniz! Ana menüye dönmek için 'Tamam' butonuna tıklayın.", "Bilgi", MessageBoxButtons.OK, MessageBoxIcon.Information);
                if (onay == DialogResult.OK)
                {
                    frmGirisYap frGirisyap = new frmGirisYap();
                    this.Hide();
                    frGirisyap.Show();
                }

                baglanti.Close();
            }
        }



Bu da Şifreyi güncelleme butonuna tıklandığında çalışan kod bu da düzgün çalışmıyor.
 
Çalışmıyor derken? Ne hata veriyor. Tüm bilgileri paylaşır mısın?
 
Çalışmıyor derken? Ne hata veriyor. Tüm bilgileri paylaşır mısın?

İlk kod için
Eğer bilgiler doğruysa yan kısmı show etmem gerekiyor ama bunu yapamadım. Bilgiler doğru olmasa bile show ediyor.

İkinci kod kısmı için.

Güncellemeyi yapmıyor yani şifreyi güncellemiyor.
 
Koddan spesifik bir hata çıkaramadım ama 2 önerim var.
  1. Using SqlConnection kullan.
  2. catch (Exception ex) catch (SqlException ex) şeklinde farklı hataları yakala ve ona göre işlem yap.

Sorunu çözmeyecek ancak okunabilirliği ve işlevselliği arttıracaktır.
Büyük ihtimal connection'da problem yaşadığını düşünüyorum bende.
 

Geri
Yukarı