none
Merhaba. C#'ta ID kullanarak bağlantılı iki kolonun verisini silmek istiyorum. Yardımcı olur musunuz? RRS feed

  • Soru

  • if (baglanti.State == ConnectionState.Closed) { baglanti.Open(); SqlCommand cmd = new SqlCommand(); cmd.Connection = baglanti; cmd.CommandText = "delete from dersler_tbl where id = @id"; cmd.Parameters.AddWithValue("@id", ???); cmd.ExecuteNonQuery(); cmd.Dispose(); baglanti.Close(); } 5-A ve 5-B sınıflarına ders ekledim. 5-A nın beden dersini sildiğimde beden dersi olan tüm sınıfları siliyor. Ben de ID kullanarak o Beden dersini silmek istiyorum.Almak istediğim ID 187 mesela.

    ID ders_adi sinifi 187 BEDEN EĞİTİMİ VE SPOR 5 - A 188 BİLİŞİM TEKNOLOJİLERİ VE YAZILIM 5 - A 189 DİN KÜLTÜRÜ VE AHLAK BİLGİSİ 5 - A 190 BEDEN EĞİTİMİ VE SPOR 5 - B 191 BİLİŞİM TEKNOLOJİLERİ VE YAZILIM 5 - B




    1 Mart 2018 Perşembe 19:58

Yanıtlar

Tüm Yanıtlar

  • "DELETE FROM dersler_tbl WHERE id = @id AND sinifi = @sinifi"

    ID = 187, sinifi = 5 - A

    Her iki kriteri karşıladığı zaman kayıt silinir.

    > "5-A nın beden dersini sildiğimde beden dersi olan tüm sınıfları siliyor." 

    Yukarıda ne diyorsunuz anlamadım.


    Ayrıca veritabanınız düzgün tasarlanmamış.  Dikkat ederseniz ders isimleri tekrarlanıyor.  Derslerin tanımlandığı ayrı bir tablo olmalı.
    1 Mart 2018 Perşembe 20:07
  • Bu tablonun adı dersler tablosu. dersler_tbl. Size şöyle izah edeyim. Bir sınıfın birden fazla dersi olabilir değil mi? Mesela 5 - A sınıfının gördüğü dersi 7 - A sınıf görmüyor. Dolayısıyla bir sınıfı çağırdığımda onunla ilişkilendirdiğim dersleri çağırmak istiyorum. Ama 5 - A nın beden dersini silmek istediğimde 5 - A'nın ve 5 - B'nin de Beden Eğitimi ve Spor adındaki dersini siliyor. Ya bu konu hakkında farklı nasıl bir düzenleme yapabilirim veri tabanında, bir fikriniz var mı? Benim niyetim 187 ID sini yakalamak.



    1 Mart 2018 Perşembe 20:17
  • Gayet iyi anlıyorum, merak etmeyin.

    Gösterdiğim sorguyu denediniz mi?

    Olması gereken veritabanı düzeninin bir kısmı:

    Ders Tanımları Tablosu: Ders ID, Ders Adı (ve belki bazı ek bilgiler)

    Sınıflar ve Dersler Tablosu: Sınıf No, Ders ID

    1 Mart 2018 Perşembe 20:23
  • Teşekkür ediyorum üstat. Sorgunu denedim işe yaradı. Düzenlediğim hali şöyle;

                    baglanti.Open();
                    SqlCommand cmd = new SqlCommand();
                    cmd.Connection = baglanti; 

                    cmd.CommandText = "delete from dersler_tbl where ders_adi = @drs AND sinifi = @snf";
                    cmd.Parameters.AddWithValue("@drs", eklenen_dersler.SelectedItem.ToString());
                    cmd.Parameters.AddWithValue("@snf", sinif_listesi.SelectedItem.ToString());

                    cmd.ExecuteNonQuery();
                    cmd.Dispose();
                    baglanti.Close();

    1 Mart 2018 Perşembe 20:25
  • OK, yanıt olarak işaretlerseniz memnun olurum.
    1 Mart 2018 Perşembe 20:31