none
C# Access Veri Çekme ve Güncelleme Sorunu RRS feed

  • Soru

  • C# projemde bir formda şifre değiştirme bölümü yaptım. Fakat şifre değişikliği sırasında güncelleme kodundaki where ifadesi yüzünden şifre değişimi yaptıramıyorum. Tablodaki birincil anahtara göre değişim yapmam gerek fakat birincil anatarı datagridview olmadan bir textbox'a yada değişkene vb nasıl çekerim ?

    Biraz araştırmam üzerine bulduğum kodlarda sürekli datagridview kullanılmış fakat ben formda datagridview olsun istemiyorum bu yüzden de bir değişken yada visible'ı false olan bir textbox gibi formda gözükmeyecek ve birincil anahtarı atayabileceğim bir kod nasıl yazarım ?

    Önce tabloda arama yaptırıp kullanıcı bilgilerini kontrol ettiriyorum.

    Önce tabloda arama yaptırıp kulldanıcı bilgilerini kontrol ettiriyorum bu kodla ;

    SELECT * FROM yoneticiler where admin_posta='" + textBox1.Text + "'AND admin_adi='" + textBox2.Text + "'AND admin_soyadi='" + textBox3.Text + "'";

    Kullanıcı eğer bilgilerini doğru girer ise şifresini değiştirebilecek. Fakat update kodundaki where ifadesi yüzünden burada tıkandım. ????

    bahsettiğim where ifadeli kod ;

     cmd.CommandText = "update yoneticiler set admin_sifre='" + textBox4.Text + "' where admin_no=" + ????? + "";

    18 Şubat 2018 Pazar 10:46

Yanıtlar

  • yöneticiler tablonuzda kullanıcı adını veya kullanıcı adına ait herhangi bir bilgiyi benzersiz yapın (örneğin Tc.No Sicil No Kullanıcı Adı vb) ayrıca parametre kullanmalısınız

    OleDbCommand cmm = new OleDbCommand("UPDATE yoneticiler SET admin_sifre=@sifre WHERE SicilNo=@SicilNo", baglanti);

    cmm.Parameters.AddWithValue("@sifre",textSifre.text);

    cmm.Parameters.AddWithValue("@SicilNo", textBox1.Text); baglanti.Open(); cmm.ExecuteNonQuery(); baglanti.Close();

    kullanıcının Id bilgisini çekmek için yine benzersiz bir alandan sorgu yapmanız lazım bu yüzden Id veya Kimlik alanını değişkene atayıp tekrar bu değişken üzerinden sorgu yapmanın bir mantığı yok aşağıda gördüğünüz üzere yine benzersiz olarak kullanıcı adından sorgu yaparak kimlik noyu bulduk

    baglanti.Open();
                OleDbCommand cmd = new OleDbCommand("SELECT kimlik FROM yoneticiler WHERE kullaniciadi=@kullaniciadi", baglanti);
                cmd.Parameters.AddWithValue("@kullaniciadi", textBox1.Text);
                if (cmd.ExecuteScalar() != null)
                    KullaniciId = Convert.ToInt32(cmd.ExecuteScalar());
                baglanti.Close();



    • Düzenleyen Tufan TOKSUN 18 Şubat 2018 Pazar 14:36
    • Yanıt Olarak İşaretleyen Yılmaz Mert 18 Şubat 2018 Pazar 18:24
    18 Şubat 2018 Pazar 14:32

Tüm Yanıtlar

  • yöneticiler tablonuzda kullanıcı adını veya kullanıcı adına ait herhangi bir bilgiyi benzersiz yapın (örneğin Tc.No Sicil No Kullanıcı Adı vb) ayrıca parametre kullanmalısınız

    OleDbCommand cmm = new OleDbCommand("UPDATE yoneticiler SET admin_sifre=@sifre WHERE SicilNo=@SicilNo", baglanti);

    cmm.Parameters.AddWithValue("@sifre",textSifre.text);

    cmm.Parameters.AddWithValue("@SicilNo", textBox1.Text); baglanti.Open(); cmm.ExecuteNonQuery(); baglanti.Close();

    kullanıcının Id bilgisini çekmek için yine benzersiz bir alandan sorgu yapmanız lazım bu yüzden Id veya Kimlik alanını değişkene atayıp tekrar bu değişken üzerinden sorgu yapmanın bir mantığı yok aşağıda gördüğünüz üzere yine benzersiz olarak kullanıcı adından sorgu yaparak kimlik noyu bulduk

    baglanti.Open();
                OleDbCommand cmd = new OleDbCommand("SELECT kimlik FROM yoneticiler WHERE kullaniciadi=@kullaniciadi", baglanti);
                cmd.Parameters.AddWithValue("@kullaniciadi", textBox1.Text);
                if (cmd.ExecuteScalar() != null)
                    KullaniciId = Convert.ToInt32(cmd.ExecuteScalar());
                baglanti.Close();



    • Düzenleyen Tufan TOKSUN 18 Şubat 2018 Pazar 14:36
    • Yanıt Olarak İşaretleyen Yılmaz Mert 18 Şubat 2018 Pazar 18:24
    18 Şubat 2018 Pazar 14:32
  • Hocam Problemi çözdüm yardımınız için teşşekürler çok yardımcı oldunuz.

    18 Şubat 2018 Pazar 18:23