Arama butonu
Bu konudaki kullanıcılar: 1 misafir
5
Cevap
1545
Tıklama
0
Öne Çıkarma
C# ta enteresan silme sorunu
B
13 yıl
Çavuş
Konu Sahibi

Arkadaşlar is yerinde kullanim amacli bir kayit defteri programi hazirladim;
Database'im accses 2007 ile olusturuldu.
Sutün basliklarim asagidaki gibiyken sorun yok:
Ekipman no , tarih , yapilan islem

Yukaridaki gibiyken silmek icin olusturdugum kod satiri

try
{
DialogResult cevap;
cevap = MessageBox.Show("Kaydı silmek istediğinizden eminmisiniz ?", "Uyarı", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (cevap == DialogResult.Yes)
{
baglan();
kom.Connection = conn;
kom.CommandText = " DELETE FROM Tablo1 WHERE KAYIT_NO='" + frm2.dataGridView1.CurrentRow.Cells[0].Value.ToString() + "'";
kom.ExecuteNonQuery();
conn.Close();
liste();
}
}
catch
{
;
}

Bu sekil fakat sutunlarimin basina "otomatik sayi " eklemek icin database den sutun acip datagrid de gosterdikten sonra silme islemi calismiyor... Tum
Fonksiyonlar tamamen sorunsuzca calismasina ragmen silme fonksiyonu hata vermiyor ama gorevini yerine getirmiyor

Kayit no, ekipman no, tarih, yapilan islem

Bunun nedeni ne olabilir? İlginize simdiden tesekkur ederim

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



< Bu ileti mobil sürüm kullanılarak atıldı >

A
13 yıl
Er

ilk olarak sütun adlarının arasında boşluk olmadığını varsayıyorum eğer var ise [] parantez ile kolon adlarını kullanman gerekir [kayit no] gibi ama tavsiyem kolon adlarında boşluk kullanma.
ikinci olarak sorguna baktığımda kayit_no kolonunun integer değer olduğunu varsayayıyorum ve gönderdiğin değer varchar formatında yani '' tırnak arasında bunun yerine parametrik olarak silme ve ekleme güncelleme şlerini tavsiye ederim ki sql injection dediğimiz hack metodunu devre dışı kalsın

bir de sorgunu try catch bloğuna catch(exception ex) { messagebox.show(exçmessage);} yazarsan hatayı görebilme ihtimalin var.
kolay gelsin


Bu mesaja 1 cevap geldi.
B
13 yıl
Çavuş
Konu Sahibi

quote:

Orijinalden alıntı: AzTeCxxx

ilk olarak sütun adlarının arasında boşluk olmadığını varsayıyorum eğer var ise [] parantez ile kolon adlarını kullanman gerekir [kayit no] gibi ama tavsiyem kolon adlarında boşluk kullanma.
ikinci olarak sorguna baktığımda kayit_no kolonunun integer değer olduğunu varsayayıyorum ve gönderdiğin değer varchar formatında yani '' tırnak arasında bunun yerine parametrik olarak silme ve ekleme güncelleme şlerini tavsiye ederim ki sql injection dediğimiz hack metodunu devre dışı kalsın

bir de sorgunu try catch bloğuna catch(exception ex) { messagebox.show(exçmessage);} yazarsan hatayı görebilme ihtimalin var.
kolay gelsin

Yardımın için teşekkür ederim. Sorun Access ten kaynaklanıyormuş yani daha doğrusu benden daha önceden hazır olan Db e kayıt no stunu ekleyerek stunu başa kaydırmıştım bu sorunu yaşamaya başladım. bir tavsiye üzerine access formunu baştan hazırladım sorun kalmadı... ne lamerim ya


Bu mesaja 1 cevap geldi.
A
13 yıl
Er

quote:

Orijinalden alıntı: Bay_HaKaN

quote:

Orijinalden alıntı: AzTeCxxx

ilk olarak sütun adlarının arasında boşluk olmadığını varsayıyorum eğer var ise [] parantez ile kolon adlarını kullanman gerekir [kayit no] gibi ama tavsiyem kolon adlarında boşluk kullanma.
ikinci olarak sorguna baktığımda kayit_no kolonunun integer değer olduğunu varsayayıyorum ve gönderdiğin değer varchar formatında yani '' tırnak arasında bunun yerine parametrik olarak silme ve ekleme güncelleme şlerini tavsiye ederim ki sql injection dediğimiz hack metodunu devre dışı kalsın

bir de sorgunu try catch bloğuna catch(exception ex) { messagebox.show(exçmessage);} yazarsan hatayı görebilme ihtimalin var.
kolay gelsin

Yardımın için teşekkür ederim. Sorun Access ten kaynaklanıyormuş yani daha doğrusu benden daha önceden hazır olan Db e kayıt no stunu ekleyerek stunu başa kaydırmıştım bu sorunu yaşamaya başladım. bir tavsiye üzerine access formunu baştan hazırladım sorun kalmadı... ne lamerim ya

estağfirullah sorun çözüldüyse sıkıntı yok demektir.



W
13 yıl
Er

SqlConnection sqlConn = new SqlConnection(@"Data Source=.\SQLEXPRESS;uid=sa;pwd=deneme; initial catalog=kayitlar; integrated security=true");
sqlConn.Open();
SqlDataAdapter da = new SqlDataAdapter();
DataTable dt = new DataTable();
SqlCommand cmd = new SqlCommand("INSERT INTO kayit(ad,soyad,takipno,telefon,serino,tarih) VALUES ('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + textBox5.Text + "','" + textBox6.Text + "''" + textBox7.Text + "')", sqlConn);

cmd. ExecuteNonQuery();
da.SelectCommand = cmd;
MessageBox.Show("kayıt eklendi");

sqlConn.Close();





.. arkadaşlar kodum bu ve benden istenilen database o anda kaydedemiyosa kaydetmedi diye bir hata mesajı verilsin kaydedildiysede kaydedildi diye. ben bunu yapamadım yardımcı olursanız sevinirim anlamışsınızdır inşlh


Bu mesaja 1 cevap geldi.
W
13 yıl
Yüzbaşı

Aşağıdaki gibi yaparsan sorunun çözülecektir.

SqlConnection sqlConn_ = new SqlConnection(@"Data Source=.\SQLEXPRESS;uid=sa;pwd=deneme; initial catalog=kayitlar; integrated security=true");
sqlConn_.Open();
SqlCommand cmd_ = new SqlCommand("INSERT INTO kayit(ad,soyad,takipno,telefon,serino,tarih) VALUES ('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + textBox5.Text + "','" + textBox6.Text + "''" + textBox7.Text + "')", sqlConn_);

int ret_ = cmd_.ExecuteNonQuery();
if (ret_ > 0)
MessageBox.Show("kayıt eklendi");
else
MessageBox.Show("kayıt başarısız");

sqlConn_.Close();
sqlConn_.Dispose();



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.