En iyi yanıtlayıcılar
Merhaba. C#'ta ID kullanarak bağlantılı iki kolonun verisini silmek istiyorum. Yardımcı olur musunuz?

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
- Düzenleyen ID kullanarak Bağlantılı İki Kolonu Silme 1 Mart 2018 Perşembe 19:59
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ı.- Düzenleyen A.M. Sabuncu 1 Mart 2018 Perşembe 20:10
- Yanıt Olarak İşaretleyen ID kullanarak Bağlantılı İki Kolonu Silme 1 Mart 2018 Perşembe 20:25
-
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
- Yanıt Olarak İşaretleyen ID kullanarak Bağlantılı İki Kolonu Silme 1 Mart 2018 Perşembe 20:25
- Yanıt İşaretini Geri Alan ID kullanarak Bağlantılı İki Kolonu Silme 1 Mart 2018 Perşembe 20:25
- Yanıt Olarak İşaretleyen ID kullanarak Bağlantılı İki Kolonu Silme 1 Mart 2018 Perşembe 20:42
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ı.- Düzenleyen A.M. Sabuncu 1 Mart 2018 Perşembe 20:10
- Yanıt Olarak İşaretleyen ID kullanarak Bağlantılı İki Kolonu Silme 1 Mart 2018 Perşembe 20:25
-
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.
- Düzenleyen ID kullanarak Bağlantılı İki Kolonu Silme 1 Mart 2018 Perşembe 20:20
-
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
- Yanıt Olarak İşaretleyen ID kullanarak Bağlantılı İki Kolonu Silme 1 Mart 2018 Perşembe 20:25
- Yanıt İşaretini Geri Alan ID kullanarak Bağlantılı İki Kolonu Silme 1 Mart 2018 Perşembe 20:25
- Yanıt Olarak İşaretleyen ID kullanarak Bağlantılı İki Kolonu Silme 1 Mart 2018 Perşembe 20:42
-
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(); -