Çözüldü C# ile şifremi unuttum kısmı nasıl yapılır?

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Katılım
3 Mart 2019
Mesajlar
45
Merhaba ben otomasyon yazdım her şey tamam ama SQL data kısımlarını biraz internet yardımıyla yaptım fakat şifremi unuttum kısmında kaldım en son. Şekildeki kod son hali sorun ise şu; veri tabanındaki ilk kayıdı referans alıyor sadece doğruysa istediğim işlemi yapıyor ama diğer kayıtlar için doğru olsa bile yanlış diyor. Sanırım if kısmında bir mantık hatası olabilir.
 

Dosya Ekleri

  • ss.png
    ss.png
    40,5 KB · Görüntüleme: 348
Son düzenleyen: Moderatör:
Çözüm
Form1_Load eventi formun açılışında çalışır. Forma çift tıklarsanız kod kısmında yeni bir void açılacak. _Komut.Connection = _Baglanti; kodunu onun içine yazın. Şunları ise public alana yazın:

SqlConnection _Baglanti = new SqlConnection("veritabanı adresi");
SqlCommand _Komut = new SqlCommand();
SqlDataReader _Okuyucu;
Hocam veri tabanı kontrolünü yaptım gerisini size bıraktım. Mail gönderme vb. işlemleri istediğiniz gibi yaparsınız. Bu arada bu tarz bir program yaparsanız başkalarıyla paylaşmayın. Çünkü bu programlar kolayca kırılabiliyor. Kodlara erişmek çok basit ve mail şifrenizi, veri tabanı bağlantı adresinizi vs. bulabilirler. Web Servis kullanmanızı öneririm. Bu tarz bilgileri programda tutmak çok sakıncalı. Bu kodları deneyin hata alırsanız veya sormak istediğiniz şeyler olursa yardımcı olmaya çalışırım.

SqlConnection _Baglanti = new SqlConnection("veritabanı adresi");
SqlCommand _Komut = new SqlCommand();
SqlDataReader _Okuyucu;

private void Form1_Load(object sender, EventArgs e)
{
_Komut.Connection = _Baglanti;
}
private void btnSend_Click(object sender, EventArgs e)
{
_Baglanti.Open();
_Komut.CommandText = "select * from TABLO_ADI where KullaniciAdi='" + txtKullaniciAdi.Text + "' and Email='" + txtMail.Text + "'";
_Okuyucu = _Komut.ExecuteReader();
if (_Okuyucu.Read())
{
//Burada şifreyi mail adresine göndermeniz gerekiyor.
MessageBox.Show("Şifre değiştirme işlemi onaylandı!", "Bilgi", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
else
{
MessageBox.Show("Bu kullanıcı adı ve şifre aynı hesaba ait değil!", "Uyarı", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
_Okuyucu.Close();
_Baglanti.Close();
}
 
Hocam veri tabanı kontrolünü yaptım gerisini size bıraktım. Mail gönderme vb. işlemleri istediğiniz gibi yaparsınız. Bu arada bu tarz bir program yaparsanız başkalarıyla paylaşmayın. Çünkü bu programlar kolayca kırılabiliyor. Kodlara erişmek çok basit ve mail şifrenizi, veri tabanı bağlantı adresinizi vs. bulabilirler. Web Servis kullanmanızı öneririm. Bu tarz bilgileri programda tutmak çok sakıncalı. Bu kodları deneyin hata alırsanız veya sormak istediğiniz şeyler olursa yardımcı olmaya çalışırım.

SqlConnection _Baglanti = new SqlConnection("veritabanı adresi");
SqlCommand _Komut = new SqlCommand();
SqlDataReader _Okuyucu;

private void Form1_Load(object sender, EventArgs e)
{
_Komut.Connection = _Baglanti;
}
private void btnSend_Click(object sender, EventArgs e)
{
_Baglanti.Open();
_Komut.CommandText = "select * from TABLO_ADI where KullaniciAdi='" + txtKullaniciAdi.Text + "' and Email='" + txtMail.Text + "'";
_Okuyucu = _Komut.ExecuteReader();
if (_Okuyucu.Read())
{
//Burada şifreyi mail adresine göndermeniz gerekiyor.
MessageBox.Show("Şifre değiştirme işlemi onaylandı!", "Bilgi", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
else
{
MessageBox.Show("Bu kullanıcı adı ve şifre aynı hesaba ait değil!", "Uyarı", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
_Okuyucu.Close();
_Baglanti.Close();
}
Teşekkürler uyarınız için, okul için otomasyon olduğu için bu şekilde attım. Buton_Click ten önceki

SqlConnection _Baglanti = new SqlConnection("veritabanı adresi");
SqlCommand _Komut = new SqlCommand();
SqlDataReader _Okuyucu;

private void Form1_Load(object sender, EventArgs e)
{
_Komut.Connection = _Baglanti;
}

kısmını tam olarak nereye yerleştirmeliyim biraz karıştırdım sanırım. Görseldeki gibi boşalttım iskeleti şuan.
 

Dosya Ekleri

  • sson.png
    sson.png
    20,4 KB · Görüntüleme: 36
Form1_Load eventi formun açılışında çalışır. Forma çift tıklarsanız kod kısmında yeni bir void açılacak. _Komut.Connection = _Baglanti; kodunu onun içine yazın. Şunları ise public alana yazın:

SqlConnection _Baglanti = new SqlConnection("veritabanı adresi");
SqlCommand _Komut = new SqlCommand();
SqlDataReader _Okuyucu;
 
Çözüm
Form1_Load eventi formun açılışında çalışır. Forma çift tıklarsanız kod kısmında yeni bir void açılacak. _Komut.Connection = _Baglanti; kodunu onun içine yazın. Şunları ise public alana yazın:

SqlConnection _Baglanti = new SqlConnection("veritabanı adresi");
SqlCommand _Komut = new SqlCommand();
SqlDataReader _Okuyucu;
Hocam vallahi hem sorunumu çözdünüz hem de mantık olarak katkınız oldu, ne kadar teşekkür etsem az vallahi çok teşekkürler :)
 
Son düzenleyen: Moderatör:
Hocam vallahi hem sorunumu çözdünüz hem de mantık olarak katkınız oldu, ne kadar teşekkür etsem az vallahi çok teşekkürler :)
Rica ederim. Ben çok debelendim bu C# uygulamalarında. Günlerce çözemediğim sorunlar oldu kafayı sıyırıyordum az daha :D O yüzden anlıyorum sizi. Bir de bir sürü insan biliyor ama kimse yardım etmiyor bu çok sinir bozucu. Bilgi paylaştıkça çoğalır. Ben size yardım ettim siz de bir başkasına yardım edersiniz. Böyle böyle gelişeceğiz İnşallah.
 
Rica ederim. Ben çok debelendim bu C# uygulamalarında. Günlerce çözemediğim sorunlar oldu kafayı sıyırıyordum az daha :D O yüzden anlıyorum sizi. Bir de bir sürü insan biliyor ama kimse yardım etmiyor bu çok sinir bozucu. Bilgi paylaştıkça çoğalır. Ben size yardım ettim siz de bir başkasına yardım edersiniz. Böyle böyle gelişeceğiz İnşallah.
Evet kesinlikle bende bi tık çözsem hem yardım ederim hemde kendim için iyi olur. Fakat bir sıkıntı daha oldu doğrulama ekranında. Doğrulama doğruysa aynı şekilde bi mail daha gönderiyor veritabanındaki Sifre sini fakat ordada ilk kayıdın şifresini yolluyor. Şimdi sizin attığınız gibi denemek istedim bazı yerlerini değiştirdim ama hata verdi. "SELECT * FROM Tablo" şeklinde yapınca mail atıyordu ama işte yukarıda dediğim gibi ilk kullanıcının şifresini atıyor.
 

Dosya Ekleri

  • sssorun.png
    sssorun.png
    34,2 KB · Görüntüleme: 26
Bu kodda şöyle bir hata var: Kullanici_Adi=@Kullanici_Adi yapmışsınız. Aynı şekilde mail ve şifreyi de. Ama bunlara değer vermemişsiniz.
"_Komut.CommandText" şeklinde başlayan satır ile _Okuyucu = Komut.ExecuteReader(); satırı arasına şunları yazın:
_Komut.Parameters.AddWithValue("@Kullanici_Adi", KULLANICI ADI TEXTBOX İSMİ);
_Komut.Parameters.AddWithValue("@Mail", MAİL TEXTBOX İSMİ);
_Komut.Parameters.AddWithValue("@Sifre", ŞİFRE TEXTBOX İSMİ);

Bir de kodları gönderirken sol taraftaki satır numaralarının görünmesine dikkat edin. Hangi satırda değişiklik yapmanız gerektiğini söylemek daha kolay oluyor.
 

Geri
Yukarı