C# Windows Form projelerimizde şifre değiştirme ekranı nasıl yapılır ? Sorusuna cevap niteliğinde bir makale. Ben basitçe aşağıdaki fotoğraftaki gibi nesneleri ekledim. Bu resimdeki gibi bir çalışmayı sizde projelerinize eklemek istiyorsanız adımları takip ediniz.

Nesnelerin isimleri şu şekilde:

  • Kullanıcı adı: txtKulAdi
  • Şifre: txtSifre
  • Yeni Şifreniz: txtYeniSifre
  • Yeni Şifreniz Tekrar: txtYeniSifreTekrar

Kodları kolayca anlamanız için isimleri de verdiğimize göre “Değiştir” butonumuzun kodlarını yazmaya başlayabiliriz. Şimdi butona çift tıklayın ve kod ekranına geçin.

using System.Data.OleDb;

En üstteki isim uzayımıza veritabanımızı eklemeyi unutmuyoruz. Ben Access veritabanında bu örneği göstereceğim MSSQL ile mantık aynı sadece bazı yazım şekli farklıdır. MSSQL veritabanına da kolayca entegre edebilirsiniz. Access veritabanımda bir tablo oluşturdum ve adını “Kullanici” yaptım. Bu tabloda 2 sütunum bulunmakta. Bu sütunların adı “KulAdi” ve “Sifre”.

Kodlarımıza devam edelim.

namespace SifreDegistir
{
    public partial class SifreDegistir : XtraForm
    {
        private readonly OleDbConnection bag =
            new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Application.StartupPath +
                                @"\Data.accdb");

        private readonly OleDbCommand kmt = new OleDbCommand();

        public SifreDegistir()
        {
            InitializeComponent();
        }

        private bool Validate(string text1, string text2)
        {
            return string.IsNullOrEmpty(text1) == false && text1 == text2;
        }

Veritabanımızın bağlantı cümlesini ekledik ve birde kmt isimli bir Command ekledik. Ardından Validate adında ve bool türünde bir değişken belirledik. Bu işlemle kullanıcının boş veri girişini space karakterini vs. önleyeceğiz.
Son olarak butonun klik olayındaki kodlarını yazalım.

 if (txtSifre.Text.Trim() != string.Empty && txtYeniSifre.Text.Trim() != string.Empty &&
                txtKulAdi.Text.Trim() != string.Empty && txtYeniSifreTekrar.Text.Trim() != string.Empty)
            {
                bag.Open();
                var cmd =
                    new OleDbCommand(
                        "Select * FROM Kullanici WHERE KulAdi='" + txtKulAdi.Text + "' AND Sifre='" +
                        txtSifre.Text + "'", bag);
                var rdr = cmd.ExecuteReader();
                if (rdr.Read() && Validate(txtYeniSifre.Text, txtYeniSifreTekrar.Text) == false)
                {
                    MessageBox.Show(" Kullanıcı adınızı veya şifrenizi kontrol ediniz !", "Hata", MessageBoxButtons.OK,
                        MessageBoxIcon.Error);
                    txtSifre.Text = string.Empty;
                    txtYeniSifre.Text = string.Empty;
                    txtKulAdi.Text = string.Empty;
                    txtYeniSifreTekrar.Text = string.Empty;
                }
                else
                {
                    kmt.Connection = bag;
                    kmt.CommandText = "UPDATE Kullanici SET Sifre='" + txtYeniSifre.Text + "' WHERE KulAdi='" +
                                      txtKulAdi.Text + "' AND Sifre='" + txtSifre.Text + "'";
                    kmt.ExecuteNonQuery();
                    MessageBox.Show("Şifreniz Değiştirildi !", "Başarılı", MessageBoxButtons.OK,
                        MessageBoxIcon.Information);
                    txtSifre.Text = string.Empty;
                    txtYeniSifre.Text = string.Empty;
                    txtKulAdi.Text = string.Empty;
                    txtYeniSifreTekrar.Text = string.Empty;
                    var giris = new Giris();
                    giris.Show();
                    Close();
                }
            }
            else
            {
                MessageBox.Show(" Lütfen boş alan bırakmayınız !", "Hata", MessageBoxButtons.OK,
                    MessageBoxIcon.Error);
            }

            bag.Close();

Böylece kodlarımızı tamamlamış olduk. En üstte if else denetimi ile kullanıcının boş bırakmasını veya boş karakter koymasını önledik. Ardından Sql cümlesi ile veritabanı ile kullanıcının girdiği verilerin doğruluğunu sorguladık. Bu işlemleri başarılı şekilde geçen kullanıcımız bir sonraki aşamaya geçerek yukarıda oluşturduğumuz kmt isimli Command ile Update sql cümlesi ile tamamlamış olduk. Kısacası kullanıcının girdiği verileri doğruladıktan sonra, kullanıcının girdiği yeni verileri eskisinin üzerine veritabanımızda yazdırmış olduk. Sizde deneyip bana geri bildirimde bulunabilirsiniz.

İyi çalışmalar dilerim.