Anasayfa / C#.Net / C# ile Sql Server Veritabanı Kayıt Güncelleme İşlemleri
c# sql server

C# ile Sql Server Veritabanı Kayıt Güncelleme İşlemleri

Bundan önceki yazılarımda veritabanına kayıt ekleme ve kayıtları datagridview içerisinde göstermekten bahsetmiştim. Şimdi ise veritabanı içerisinden istediğimiz kaydı bulduktan sonra nasıl güncelleme işlemi yapabileceğimizi anlatacağım. Örneğimizde kullanacağımız DataAdapter ve DataReader sınıflarını inceleyelim.

SqlDataAdapter; bellek üzerinde oluşturulan tablo ve kayıtların, veritabanına gönderilmesi ya da veritabanındaki tabloların belleğe çekilmesi işlemlerini gerçekleştiren sınıftır.

SqlDataReader; veritabanından okunan kayıtların bellek üzerinde tutulmasını sağlayan sınıftır. Bağlantı açık olduğu sürece çalışır ve aynı anda sadece bir kaydı bellekte saklayabilir.

Veritabanı işlemleriyle ilgili önceki yazılarımızı okumayanlar için Sql veritabanımızdaki musteriler tablomuzu aşağıdaki gibi hazırladığımızı belirtmek isterim.

sql table
Musteriler Tablosu

Örneğimizin nasıl çalışacağını açıklayalım. Öncelikle üzerinde değişiklik yapmak istediğimiz müşterinin bilgilerini veritabanından çekip, bu bilgileri form üzerindeki kontrollere aktaracağız. Sonra gerekli değişiklikleri yapıp, yeni verileri eskisiyle değiştireceğiz. Bunun için aşağıdaki gibi formumuzu oluşturuyoruz.

kayit güncelleme tasarim
Güncelleme Form Tasarımı

Formuzun tasarımı bittikten sonra öncelikle Ara butonu yardımıyla müşteri bilgilerini bize getirecek olan kodlarımızı yazalım. Kodların çalışmasıyla ilgili ayrıntıları satır aralarına ekledim.

Kontrollerin isimlerini yazarken hata yapmadıysanız veritabanında ki ilgili kaydı, form üzerinde aşağıdaki gibi görüntülemiş olmanız gerekiyor.

veritabanı kayıt sorgulama
Veritabanı Kayıt Sorgulama

Şimdi müşteri bilgilerinde değişiklik yaptıktan sonra veritabanındaki bilgileri güncellemek için gerekli olan Kaydet butonumuza ait kodları yazalım.

Veritabanımızdaki müşterimize ait verileri sorunsuz şekilde güncelledik. Konuyla ilgili sorularınızı bana iletebilirsiniz. Bir sonraki yazımda veritabanından kayıt silme işlemini anlatacağım. Kolay gelsin.

İlginizi Çekebilir!

c# müzik çalar yapımı

C# ile Müzik Çalar Yapımı

Bu dersimde Windows’un kendi müzik çaları olan Windows Media Player’ ı C# içerisin de kullanarak ...

10 Yorumlar

  1. elinize sağlık çok iyi bir anlatım

  2. Gökhan Çevik

    Hocam ellerinize sağlık çok güzel ama iki tane eksik şey buldum, geri dönerseniz çok memnun olurum.
    1. Temizle butonuna bir müdahalede bulunmamısız 😀
    2. Kayıt butonuna tıkladıgımda db’de hepsini değistiriyor ve aynısı oluyor 🙁
    ama en azından çalısdı.

    • Gökhan Bey, yorumlarınız için teşekkür ederim. Kod karmaşası olmasın diye temizle butonuna kod eklemedim. Update sorgusunun where bölümünde hata yapmadığınıza emin misiniz?

  3. hoca yanlısın var sanırım aynı kodlar ama olmuyor hata veriyor ? komut tanımında “adres=@adres where id=@id diye devam ettim adresin sonuna virgül koyupda denedim koymadan da gene olmadı

    http://i.hizliresim.com/Ebl0W9.png

    resimden bakabilirsiniz

    • Update sorgunuzda tablonuzun ismi tables ise from kelimesi fazlalık olmuş, onu silerseniz sorununuz düzelecektir. Kolay gelsin.

  4. Hocam kodlarınızı aynen alıp, kendime göre düzenleyip çalıştırdım, bulma kısmı olup textboxlara getirdi ama değiştirme işlemi için aşağıdaki butona basınca aşağıdaki hatayı veriyor:

    “Conversion failed when converting the nvarchar value ‘label8’ to data type int.”

    Tablomda KitapNo kısmı var, hem birincil anahtar hemde otomatik sayı. (Başka bir tablodaki KitapNo ile de ilişkili.) Hocam lütfen yardım edin saatlerdir uğraşıyorum bir türlü hatayı çözemiyorum.. Teşekkürler.

    Not: Hocam diğer kayıt ekleme, silme, bulma işlemlerinin hepsi gayet iyi çalıştı bunda sorun çıkarıyor sadece.

  5. Hocam datatimepicker nasıl yansıtabiliriz veri tabanındaki tarihi?

    private void btnara_Click(object sender, EventArgs e)
    {
    SqlConnection baglan = new SqlConnection(“Data Source=mete-bilgisayar\\sqlexpress;Initial catalog=omyo;Integrated security=true”);
    baglan.Open();
    string kayit = “Select * from bilnorm1 where SNo=@SNo”;
    SqlCommand cmd = new SqlCommand(kayit, baglan);
    cmd.Parameters.AddWithValue(“SNo”, txtsno.Text);
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    SqlDataReader dr = cmd.ExecuteReader();
    if (dr.Read())
    {
    dtpTarih.Value = dr[“AraSinavTarihi”].ToString(); ;
    txtsaat.Text = dr[“SinavSaati”].ToString();
    txtderskod.Text = dr[“DersKodu”].ToString();
    txtdersadi.Text = dr[“DersinAdi”].ToString();
    txtsinif.Text = dr[“Sinif”].ToString();
    txtadsoyad.Text = dr[“AdiSoyadi”].ToString();
    txtderslik.Text = dr[“Derslik”].ToString();
    }
    else
    {
    MessageBox.Show(“Kayıt Bulunamadı.”);
    baglan.Close();
    }

    • Merhaba üstadım üstünden 2 ay geçmiş sen çözmüşsündür zaten fakat belki daha sonra arayıp da bulamayanlar olur diye yazarım ben.

      dtpTarih.Value = dr[“AraSinavTarihi”].ToString();

      Burada ToString dersen olmaz çünkü tarih biçimi text değildir. Bunu Convert.ToDateTime içine al. tostring silmeyi unutma !

      Kolay gelsin.

  6. Temizle butonu için bunu yapmanız yeterli

    private void temizleBtn_Click(object sender, EventArgs e)
    {
    foreach(Control item in this.Controls)
    {
    if(item is TextBox)
    item.ResetText();
    }
    }

  7. Hocam Kaydetme kısmında bağlantıyı kapattıgım halde “bağlantı kapatılmadı bağlantı durumu: açık” diyor.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir