Çö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
59
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
    40,5 KB · Görüntüleme: 438
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 CommandText gönderir misiniz?
Mümkünse özel kısımları sansürleyip kodun tümünü gönderin.
Şu şekilde

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using System.Data.SqlClient;
using System.Net.Mail;

namespace SifremiUnuttumOdevi
{
public partial class sifre : DevExpress.XtraEditors.XtraForm
{
public sifre()
{
InitializeComponent();
}
public static int kod;
public static int dogrulamakodu;

public void button1_Click(object sender, EventArgs e)
{
SqlConnection baglanti = new SqlConnection();
baglanti.ConnectionString = "Veritabanı adresi";
baglanti.Open();
SqlCommand cmd = new SqlCommand("SELECT * from dbo.Table_1", baglanti);
SqlDataReader alinan_veri;
alinan_veri = cmd.ExecuteReader();
Random dogrulama = new Random();
int kod = dogrulama.Next(100000, 999999);
dogrulamakodu = kod;
MailMessage eposta = new MailMessage();
if (alinan_veri.Read())
{
if (textBox1.Text == alinan_veri["KullaniciAdi"].ToString() && textBox2.Text == alinan_veri["Email"].ToString())
{
eposta.From = new MailAddress("mail adresi");
eposta.To.Add(textBox2.Text.ToString());
eposta.Subject = "Şifre Değiştirme Onay Kodu";
eposta.Body = "Doğrulama Kodunuz: " + kod;
SmtpClient smtp = new SmtpClient();
smtp.Credentials = new System.Net.NetworkCredential("mail adresi", "şifre");
smtp.Host = "smtp.live.com";
smtp.EnableSsl = true;
smtp.Port = 587;
smtp.Send(eposta);
MessageBox.Show("Şifre Değiştirme Onay Kodu Gonderildi");
baglanti.Close();

DogrulamaEkrani DogrulamaEkrani = new DogrulamaEkrani();
DogrulamaEkrani.Show();
this.Hide();
}
else
{
MessageBox.Show("Hatalı kullanıcı adı yada e posta adresi");
}
}






baglanti.Close();
}
 
@saliholoji müsatise yardımcı olabilir.
Teşekkür ederim bilgi için olurum,

Diğer kayıtlar için derken diğer yapmak istediğin işlem ne? Soru net açık değil aynı kodu mu gönderiyor yoksa şifre değiştikten sonra yeni şifreyi mi çekemiyorsun anlamadım.
 
Hocam sıkıntım şu; Benim kullanıcılar adından sql de bi tablom var (adminler gibi düşünebiliriz) burdan her hangi bir kişi şifremi unuttum için girip kullanıcı adını ve mail adresiniz yazacak ve doğruysa doğrulama kodu gelecek. Sorun şu ki sadece tek bir kullanıcı için yapıyor bunu (sql tablosundaki ilk kullanıcı) kayıtlı başka kullanıcı adı ve mail yazınca doğru olsa bile yanlış diyor.
 
Tüm bilgiyi çekmeyin, SQL cümlesine koşul koyun; koşul, o kullanıcı olsun.
SELECT * FROM Table_1 WHERE Kullanici_Adi=Textbox1.Text.ToString() gibi.
 
Burda SQL'de where sorgusunu kullanarak yapabilirsin bunun için örneğin;


SqlCommand komutguncelle = new SqlCommand("SELECT * from dbo.Table_1 WHERE KullaniciAdi=textBox1.Text.ToString() ", baglanti);

Olarak veriyi çekip istediğin kişinin verisini alabilirsin sadece, eğer tüm verileri çekersen dediğin gibi en baştaki kişiyi feyz alacaktır.
 
Şöyle bir hata verdi bu seferde
Tüm bilgiyi çekmeyin, SQL cümlesine koşul koyun; koşul, o kullanıcı olsun.
SELECT * FROM Table_1 WHERE Kullanici_Adi=Textbox1.Text.ToString() gibi.
Bu hatayı verdi
 

Dosya Ekleri

  • hata.png
    52,5 KB · Görüntüleme: 102
  • hata.png
    52,5 KB · Görüntüleme: 105
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…