folder Tahribat.com Forumları
linefolder C#, Asp.Net, .Net Core
linefolder C# Düzenle Komutunu İkinci Kez Çalıştıramıyorum



C# Düzenle Komutunu İkinci Kez Çalıştıramıyorum

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Jigsaw
    Jigsaw's avatar
    Kayıt Tarihi: 07/Nisan/2011
    Erkek

    merhabalar iyi akşamlar ;

    aşağıdaki kodları yazdığımda datagridview den sectiğim satırdaki/sütundaki verileri textboxlara richtexbox a ve comboboxlara yazdırıyorum.sorun şu ; datagridview den sectigim veriyi örneğin adres verisini richtextboxtan değiştirip düzenle butonuna tıkladığımda değiştiriyor fakat ikinci kez mesela dogum yerını değiştiriyorum hata vermiyor ancak ikinci kez başka bi veriyi veya aynı veriyi değiştirmiyoryani komut sadece bir kere çalışıyor ikinci kez düzenlemiyor nasıl çözebilirim?

     

    kodlar ;

     

    private void button3_Click(object sender, EventArgs e)

            {

                    baglanti.Open();

     

                    string sorgu2 = "UPDATE tbl_Hasta SET isim=@isim,d_tarihi=@dtarih,d_yeri=@dyeri,kan_grubu=@kgrup,cinsiyet=@cinsiyet,adres=@adres,tel=@tel where hasta_id=@id";

                    string cinsiyet = "";

                    if (radioButton1.Checked == true)

                        cinsiyet = "E";

                    else if (radioButton2.Checked == true)

                        cinsiyet = "K";

     

                    kmt.Connection = baglanti;

     

                    kmt.CommandText = sorgu2;

     

                    kmt.Parameters.AddWithValue("isim", textBox1.Text);

                    kmt.Parameters.AddWithValue("dtarih", textBox2.Text);

                    kmt.Parameters.AddWithValue("dyeri", comboBox2.SelectedItem.ToString());

                    kmt.Parameters.AddWithValue("kgrup", comboBox1.SelectedItem.ToString());

                    kmt.Parameters.AddWithValue("cinsiyet", cinsiyet);

                    kmt.Parameters.AddWithValue("adres", richTextBox1.Text);

                    kmt.Parameters.AddWithValue("tel", textBox3.Text);

                    kmt.Parameters.AddWithValue("id", dataGridView1.CurrentRow.Cells[0].Value.ToString());

     

                  kmt.ExecuteNonQuery();

     

                    baglanti.Close();

     

            }


    Başkalarına hakim olan kuvvetlidir, kendine hakim olan kudretlidir
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    saybirs
    saybirs's avatar
    Kayıt Tarihi: 24/Temmuz/2009
    Erkek

    breakpoint koyup dener misin hocam, bütün satırlara gidiyor mu 

    if şartında takılıyor olabilir { } parantezleride koymamışsın.

    edit unbalanced hocanın dediği gibi kmt'yi Dispose etmemiş.

    saybirs tarafından 20/May/14 23:44 tarihinde düzenlenmiştir
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    gördüğüm kadarıyla parametreleri temizlememişsin, üstüne tekrar tekrar ekliyorsun..

     

    kmt.Parameters.Clear() gibi bi fonksiyon olması lazımdı, onu addwithvalue demeden önce çağırırsan olması lazım


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Jigsaw
    Jigsaw's avatar
    Kayıt Tarihi: 07/Nisan/2011
    Erkek

    @unbalanced hocam teşekkürler onu da ekleyecegim hatırlattıgın için sagol

     

    @saybirs hocam sorunu çözmüştür  kmt.ExecuteNonQuer(); den sonra dispose satırı eklemek gerekiyor kmt.Dispose(); yazinca düzeldir saybirs hocama teşekkürler


    Başkalarına hakim olan kuvvetlidir, kendine hakim olan kudretlidir
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek
    Jigsaw bunu yazdı

    @unbalanced hocam teşekkürler onu da ekleyecegim hatırlattıgın için sagol

     

    @saybirs hocam sorunu çözmüştür  kmt.ExecuteNonQuer(); den sonra dispose satırı eklemek gerekiyor kmt.Dispose(); yazinca düzeldir saybirs hocama teşekkürler

    dispose yapma hocam, yani en azından o şekilde yapma.. yapıyorsan using anahtar kelimesiyle class ı oluşturup yap.. ama orada dispose edersen doğru olmaz yani doğru bir yol değildir. muhtemelen dediğim gibi parameters i silmen kafi dir. 


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
Toplam Hit: 793 Toplam Mesaj: 5