C# Düzenle Komutunu İkinci Kez Çalıştıramıyorum
-
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();
}
-
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 -
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
-
@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
-
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.
