C# ile access veri düzenleme sıkıntısı

Başlatan Murat Mert, 14 Ocak 2016, 10:58:18

Murat Mert

S.A. kolay gelsin.
C# bir şeyler öğrenmeye çalışıyorum. Access veri tabanına kayıt ,okuma, silme, düzenleme bunları öğrenmeye çalışıyorum.
*.mdb veride id numarasını metin yaparsam sorun yok. Otomaik sayı yada sayı yapınca kayıt, silme ve seçmede sorun yok ama düzenlemede sıkıntı çıkıyor. Metin kayıtta çalışan Düzenleme kodum bu. Burada id yi otomatik sayı seçince nasıl düzenleme yaparım. Kolay gelsin.
         private void duzenle_Click(object sender, EventArgs e)
        {
            baglantı.Open();
            komut.Connection = baglantı;
            komut.CommandText = "Update bilgiler set id='" + textBox1.Text.ToString() + "',Adsoyad='" + textBox2.Text.ToString() + "',gorevi='" + textBox3.Text.ToString() + "',telefon='" + textBox4.Text.ToString() + "',mail='" + textBox5.Text.ToString() + "'where id='" + id + "'";

            komut.ExecuteNonQuery();
            baglantı.Close();
            verilerigörüntüle();
        }
mert07

muhittin_kaplan

#1
birincil anahtarın ne olduğunu biliyormusun ?

mesaj birleştirme:: 16 Ocak 2016, 00:33:09

komut.CommandText = "Update bilgiler set Adsoyad='" + textBox2.Text.ToString() + "',gorevi='" + textBox3.Text.ToString() + "',telefon='" + textBox4.Text.ToString() + "',mail='" + textBox5.Text.ToString() + "'where id=" + id;

id yi sildim (id bir sayı ve primary key (otomatik artıyor örneğin.))

ayrıca bu tür bir düzenleme kullanılmaz,
Parametre kullanmalısın, yoksa sql injection a maruz kalabilirsin.

https://www.google.com.tr/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#safe=off&q=sql+injection+nedir

Murat Mert

Hocam verdiğiniz bilgiler için çok teşekkürler. Access de verilen id (birincil anahtar) otomatik sayı idi. Kodları yeniden deneyerek yazdım şu şekilde çalıştırdım

using System.Data.OleDb;  // Access bağlantısı kurabilmek için.
using System.Collections;


private void düzenle_Click(object sender, EventArgs e)
        {
            if (adsoyad.Text != "")
            {
                baglantı.Open();
                komut.Connection = baglantı;
                c = MessageBox.Show("***" + adsoyad.Text + "***Kişisinin Bilgileri değişiyor", "DÜZENLEME UYARI", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
                if (c == DialogResult.Yes)
                {
                    komut.CommandText = "update kisiler set Adsoyad='" + adsoyad.Text + "',Gsm='" + gsm.Text + "',Bolum='" + bolum.Text + "',Email='" + email.Text + "',Adres='" + adres.Text + "' where kisi_Id=" + kisi_no.Text + "";


                    komut.ExecuteNonQuery();
                }
                baglantı.Close();
                griddoldur();
                ekran_temizle();
            }

            else { MessageBox.Show("DÜZENLENECEK KİŞİ BİLGİLERİNİ KONTROL EDİN!!!", "DÜZENLEME UYARI",MessageBoxButtons.OK,MessageBoxIcon.Error); }
        }

 
                   


Hocam bu kodlarla bilgileri düzenleyebildim içine de kontrol olsun diyede messagebox ile kontrol uyarıları koydum. Çok çok bir amatör olarak Her zaman önerilerinize açığım. Emeğiniz ve paylaşımınız için teşekkür ederim.
mert07