‫Tekrar hoş geldiniz.
‫Bu videoda, kullanıcı arayüzümüzün geri kalanını ekleyeceğiz ve şimdilik ZUS'u
‫silecek olan bir işlev ekleyeceğiz.
‫O zaman devam edelim ve bunu yapalım.
‫Gördüğünüz gibi, arayüz aşağı yukarı böyle görünmelidir ve biz de hemen hemen aynı şekilde
‫oluşturacağız.
‫Aynı bilgileri buraya yazarak aynı şekilde oluşturabiliriz, ancak bu daha çok sürükleyip bırakmakla
‫ilgilidir, böylece ihtiyacımız olan tüm SQL kodunu veya genel olarak C sharp'ta ihtiyacımız olan veritabanı
‫kodunu çalıştırabiliriz.
‫Öncelikle, ihtiyacımız olan şeyleri görebilmek için araç kutusunu açalım.
‫Ve düğmelere ihtiyacımız olacak ve bir düğmeyi tam buraya sürükleyeceğim, tıpkı bunun gibi biraz
‫mesafeyle.
‫Ve bu düğme içeriği sil gibi bir şey söylemelidir.
‫Sonra bu düğmeyi kopyalayacağım.
‫Kopyala yapıştır.
‫Yanına sürükleyeceğim.
‫Bu da hayvanı kaldırmaktı çünkü onu silmiyoruz, sadece artık kaldırıyoruz.
‫Bu arada bu içerik silme değil, hayvanat bahçesi silme.
‫Hayvanat bahçesini sildik ve hayvanları çıkardık.
‫Şimdi kopyala ve yapıştır.
‫Tam buraya koyacağım.
‫Kopyala ve tekrar yapıştır.
‫Aslında, yeniden adlandırmadan önce düğmeleri oluşturuyoruz.
‫Ve burada ve sonra burada altta bir tane daha.
‫Ve en üstteki sonuncusu.
‫Belki de her şeyi biraz daha aşağıya çekmeliyiz.
‫İşte böyle.
‫Yani silme düğmesi için yeterli alan var ve bu da böyle gidebilir.
‫Tamam.
‫Şimdi aslında yapabileceğimiz şey, listelerin sağ taraftaki ile aynı yüksekliğe gelmesi için bunları
‫da biraz aşağı sürüklemektir.
‫Burada söz konusu olan mükemmel, kusursuz bir kullanıcı arayüzü değil, bildiğiniz gibi başka konularla ilgili.
‫Yani 500 çok fazla.
‫450 iyi olmalı.
‫Ve şimdi burada, 600'e bakalım.
‫Bu hala çok fazla.
‫Ya da 625.
‫Yani 600 biraz daha iyi olmalı, belki 580 ya da onun gibi bir şey.
‫Tamam, şimdi tüm düğmeler orada.
‫Ana penceremiz iyi görünüyor.
‫Başlığımızın adını bile değiştirebiliriz.
‫Onu bir hayvanat bahçesi müdürü yapalım.
‫Pekâlâ, hayvanat bahçesi listesi elimizde.
‫Hayvanat bahçesini sil.
‫Şimdi tüm bu düğmeleri değiştirebiliriz.
‫İçindekiler.
‫Yani bu bir hayvanat bahçesi eklentisiydi.
‫Bu güncel bir hayvanat bahçesi.
‫Aslında bu bir hayvan olduğu için güncellenmedi çünkü yukarıdan aşağıya doğru sıralanmadılar.
‫Sadece buraya tıklamaları gerekiyor.
‫Ve gördüğünüz gibi, benim için doğru olanı hemen seçiyor.
‫Yani bu hayvanat bahçesi güncellemesi olmalı.
‫Buradaki düğme güncelleme hayvanı.
‫Bu hayvan hayvanı siliyor.
‫Ve buradaki de öyle olacak.
‫Hayvanat bahçesine hayvan ekleyin, hayvanat bahçesine hayvan götürün.
‫Ve şimdi sanırım işimiz bitti.
‫Güncelleme Hayvanat Bahçesi aslında bu güncelleme hayvanat bahçesinin değiştirilmesi gerekiyor.
‫Daha fazla güncelleme.
‫Pekala, şimdi tüm düğmelerimiz iyi durumda.
‫Sadece ortada bir metin kutusuna ihtiyacımız var ve onu bu şekilde biraz yeniden konumlandıracağım, daha
‫geniş yapacağım ve bu şekilde iyi olacak.
‫Metin kutusunun yazı tipi boyutunu bile biraz daha büyük olacak şekilde değiştirebiliriz.
‫Ama bu iyi olmalı.
‫Dediğim gibi, burada mükemmeliyetçilik ya da bu kullanıcı arayüzünde mükemmeliyetçilik söz konusu değil.
‫Tamam, şimdi bunu yaptığımıza göre, devam edebilir ve hayvanat bahçesini sil düğmesini ekleyebiliriz.
‫Bu yüzden düğmeye çift tıklayacağım.
‫Ve bu düğme tıklama olayını alıyorum ve aslında bu ismi sevmiyorum, bu yüzden belki de bu en iyisi değildir.
‫Geri dönelim ve değiştirelim.
‫Yani bu düğmemiz var ve Düğme Tıklaması adlı bu olayı aldı ve ben buna Hayvanat Bahçesini Sil ve hatta
‫belki de
‫Alt Çizgi Tıklaması gibi bir şey diyeceğim.
‫Bu, oluşturacağım yeni olay işleyicisi olacak.
‫Bu ismi kopyalayacağım ve yöntemi kendim uygulayacağım.
‫Bu özel bir boşluk, sil, zoo, tıkla.
‫Bildiğiniz gibi, gönderici olan bir nesneye ve köklü bir olaya ihtiyaç duyar.
‫ARG'ler ve
‫burada da.
‫Şimdi burada ilk olarak düğmenin çalışıp çalışmadığını, mesaj kutusunu veya silme zoo'sunun tıklanıp tıklanmadığını veya buna benzer bir şeyi kontrol
‫edebiliriz.
‫Hayvanat Bahçesini Sil tıklandı ve şimdi düğmenin doğru çalışıp çalışmadığını görmek için çalıştıralım.
‫Tamam.
‫Öyleyiz.
‫Yani bu bizim arayüzümüz.
‫Şimdiden her şey yolunda görünüyor.
‫Şimdi hayvanat bahçesini silelim.
‫Hayvanat bahçesini sil seçeneğine tıklandı.
‫Mükemmel.
‫Yani düğme çalışıyor.
‫Şimdi devam edebilir ve bunu burada doğru bir şekilde uygulayabiliriz.
‫Yapacağım şey, yeni bir sorgu oluşturmak olacak çünkü iyi olmasını istedim, bir şeyi silmesini istiyorum.
‫Bu yüzden delete anahtar sözcüğünü hangi tablodan, ID'nin eşit olduğu hayvanat bahçesi tablosundan kullanacağım.
‫Ve şimdi hayvanat bahçesi kimliğinde hayvanat bahçesi kimliği adında bir şey kullanacağız ve bu, oluşturmamız gereken kendi değişkenimiz
‫olacak.
‫Bu yüzden burada SQL parametrelerinde gördüğümüz gibi yeni bir parametre oluşturmamız gerekiyor.
‫Böylece bu SQL Komut parametrelerine ulaştık, değerle ekledik ve size bu SQL şeylerini işlemenin diğer
‫yolunu göstereceğim.
‫Yani bu adaptörü kullanmadan.
‫Tamam.
‫Bu yüzden aşağıdakileri kullanacağız.
‫SQL Komutu yeni bir SQL Komutu olacak.
‫Ve burada, SQL Komutunun bazı bilgilere ihtiyacı vardır.
‫Bu yüzden öncelikle bir sorguya ve SQL bağlantısına ihtiyaç duyar.
‫Yani burada yeni bir şey yok.
‫Bunu burada zaten gördük.
‫SQL Komut Sorgusu ve SQL Bağlantısı ve şimdi devam edip bu bağlantıyı başlatabiliriz, SQL Bağlantısı
‫açık.
‫Böylece SQL'e bir bağlantı açıyoruz ve şimdi bu SQL Komutuna parametre ekliyoruz.
‫Yani parametreler nokta değer katar.
‫Ve burada, en üstte bulunan Zoom ID'de bunu kullandım.
‫Yani buradakiyle tamamen aynı olmak zorunda.
‫Sonra basitçe neyi silmek istediğimi söylüyorum ve Liste Zeus Nokta seçili diyeceğim.
‫Value çünkü seçilen değer hayvanın adı değil, aslında ID'si ve şimdi bu kodu çalıştırabiliriz.
‫Böylece SQL Command Dot Execute Scalar sorguyu çalıştırır ve ilk satırın ilk sütununu ve sorgu tarafından döndürülen
‫sonuç kümesini döndürür.
‫Ek sütunlar veya roller göz ardı edilir.
‫Bunun için ihtiyacımız olan şey, SQL bağlantımız üzerinde sorguyu çalıştıracak olan bu SQL
‫Komutunu çalıştırmanın en basit yoludur.
‫Ve bu da genel giderleri karşılamayacak.
‫Çok basit bir uygulama olacak.
‫Tamam.
‫Ve şimdi elbette SQL bağlantısını da kapatmamız gerekiyor.
‫Yani SQL Bağlantısı kapanıyor, çünkü gördüğünüz gibi bir bağlantı açmamız gerekiyor.
‫Parametreleri eklememiz, kodu çalıştırmamız ve ardından bağlantıyı tekrar kapatmamız gerekiyor
‫çünkü aksi takdirde hatalarla karşılaşabiliriz.
‫Şu anda göstermek istediğim Zeus.
‫Ve aslında burada dikkate alınması gereken bir şey var, çünkü çok sayıda hayvanat bahçemiz var, çok sayıda hayvanımız
‫var ve hatta her ikisini de bir arada bulunduran bu ilişki tablosuna sahibiz.
‫Yani belirli bir hayvanat bahçesinde bulunan hayvanlar, ancak bir hayvanat bahçesini silersem, tüm farklı hayvanat bahçesi hayvan
‫girişlerine de bir silme uygulamak istiyorum.
‫Evet.
‫Biraz daha açık olması için verilere gidelim.
‫Hayvanat bahçesi masasına ve hayvanat bahçesi hayvanları masasına bakalım.
‫Diyelim ki bir fikri olan New York'u siliyorum.
‫Hayvanat bahçesi kimliğini burada tutmanın bir faydası yok.
‫Yani bu hayvanat bahçesi kimliği bir ve bu hayvanat bahçesi kimliği bir giriş.
‫Yani ID bir ve iki, bu girişler artık gerekli değildir çünkü hayvanat bahçesinde hayvan yoktur, çünkü hayvanat bahçesi
‫artık mevcut değildir.
‫İşte bu yüzden bu iki girişten kolayca kurtulabiliriz.
‫Ancak bunu manuel olarak yapmamıza gerek yok.
‫Kod içinde uygulayarak.
‫Aslında veri tablomuzu da ayarlayabiliriz ve bunu ayarlamak bizim için işi hemen hemen yapacaktır.
‫Yani açık masa tanımı.
‫Ne olmuş yani?
‫Açacağım.
‫Ve buraya son olarak eklemem gereken şey silme kademesidir.
‫Doğru.
‫Ve bunu burada her iki profesyonel için de yapıyorum.
‫Yani hem hayvanımız için, hem Inky için, hem de hayvanat bahçemiz için Inky'ye yönelik kısıtlamalar.
‫Böylece, ilgili giriş mevcut değilse, daha doğrusu bağlı olduğumuz hayvanat bahçesindeki ilgili kimlik mevcut değilse,
‫orada bulunan bu girişi hemen hemen silecektir.
‫Diyelim ki bir hayvanat bahçesini kaldırdık, o zaman artık o hayvanat bahçesindeki tüm hayvanlara ihtiyacımız yok, hayvanların
‫kendilerine değil, hayvanat bahçesi ile hayvanlar arasındaki bu korelasyona ya da bu ilişkiye ihtiyacımız var.
‫Böylece onlardan da kurtulabiliriz.
‫İşte buradaki iki kayıt da bunu gösteriyor.
‫Bu silme işleminde Cascade bunu yapmamıza izin veriyor, şimdi kodu çalıştırmadan önce, bunun aslında hatalara neden olabileceğini
‫görmeniz için güncellememiz gerekiyor.
‫Şimdi basitçe kodu çalıştıracağım.
‫Başlatacağım ve bir şeyi silmeye çalışacağım ve burada geçerli olan hatayı göreceksiniz.
‫Bu yüzden Kyra'yı sileceğim.
‫Ve silme ifadesinin referans kısıtlamasıyla çakıştığını söylüyor.
‫Zoo f k veritabanı tablosu zoo ve dolayısıyla sütun zoo ID'de meydana gelen çakışma, ifade sonlandırıldı.
‫Dolayısıyla bu hataya sahibiz ve eğer hatayı araştırırsak, bunun tam da bu eksiklikten kaynaklandığını görürüz.
‫Yani silme kademesinde ve bunun nedeni henüz güncellememiş olmamız.
‫Şimdi veritabanını yeni güncellenmiş tablo kısıtlamalarımızla birlikte buradaki yeni tasarımla güncelleyelim.
‫Ve bu yapıldığında, güncelleme tamamlandığında ve başarılı olduğunda, bu harika.
‫Tekrar başlatabiliriz ve Chiro'yu silmenin şimdi işe yaradığını göreceğiz.
‫Ve şimdi bir hata almadık.
‫Peki Kahire neden hala orada?
‫Bu da bu listeyi gösteren ya da güncelleyen metodu çağırmamamızla ya da döküm yapmamamızla ilgilidir.
‫Şimdi kodumuza geri dönelim ve aslında burada.
‫Yani bu koda sahibiz ve şimdi tüm hayvanları göstermemiz ya da aslında tüm hayvanat bahçelerini böyle göstermemiz gerekiyor.
‫Hayvanat bahçelerini göster.
‫Şimdi tekrar başlayalım.
‫Ve kyros'un çoktan gitmiş olduğunu göreceksiniz.
‫Yani artık orada değil.
‫Gördüğünüz gibi, Kahire bunu sildi.
‫Şimdi Berlin'i silelim.
‫Boom ve bir SQL hatası alıyoruz.
‫Ama kayboldu.
‫Gördüğünüz gibi, bir şeyi sildiğimiz için bir hata oluştu ve bu hata gösteri hayvanat bahçelerimiz veya ilişkili
‫hayvanlarımız tarafından burada istisna dediğimiz bir yere uygulandı, değil mi?
‫Bu istisnayı yakaladık ve bize bu hatayı gösterdiler.
‫Ama şimdi bu oldukça ileri bir adım.
‫Şimdi yapacağım şey, bir hatayla karşılaştığımızda programımızı durdurmaması için bu kodu güncellemek
‫olacak.
‫Bu yüzden bir try catch oluşturacağım ve son olarak.
‫BLOK.
‫Bu yüzden henüz çok sık kullanmadık ama bu sefer gerçekten mantıklı.
‫Peki denememde çalıştırmak istediğim kod nedir?
‫Her şey yürütmeye kadar.
‫Yani tüm bunlar ters gidebilir ve sonra.
‫Eğer buradaki bağlantıyı kapatmak istiyorsak.
‫Ve son olarak, doğru yol budur, çünkü burada açarsak, bir noktada kapatmamız gerekir ve son olarak
‫kapatmalıyız, çünkü işe yarasa da yaramasa da, sadece kapatmak ve çalışacağından
‫emin olmak istiyoruz.
‫Her şey yolunda.
‫Aynı şey bize de gösteriliyor, yani işe yaramış ya da yaramamış, fark etmez.
‫Gösteriye Zoo Method adını veriyoruz ve bu hala masamızda bulunan hayvanat bahçelerini gösterecektir.
‫Ve şimdi, sadece bir hata atmak yerine, burada bir istisna adı kullanacağım.
‫Buna E adını vereceğim ve bunu mesaj kutumda göstereceğim.
‫Böylece bir mesaj kutusu gösterilir ve bu da böyle bir dize için e noktası olacaktır.
‫Tamam.
‫Şimdi, buna X diyebiliriz, belki.
‫Belki böylesi daha iyidir.
‫Buradaki sorun, kök olayımızın zaten E olarak adlandırılmış olmasıdır, bu nedenle buna x OC adını vermeliyiz.
‫Şimdi tekrar başlatalım ve listemizden bileşenleri silip silemeyeceğimize bakalım.
‫Ve çok fazla sağımız kalmadı.
‫Tokyo'yu silelim.
‫Bunu alıyoruz ve var char for animal in a join parametresi zone was parametresinin sağlanmamış olmasını
‫bekliyor ve bu aslında bize hiç yardımcı olmayan bir hata.
‫Bu yüzden buradaki mesaj kutusundan kurtulacağım çünkü burada bir hata alıyoruz ama şimdilik bunu görmezden geleceğim
‫çünkü hala çalışıyor, değil mi?
‫Programımız hala çalışıyor ve yapması gerekeni yapıyor.
‫Yani burada sadece bu kod hala yürütülüyor, ilişkili hayvanları gösteriyor.
‫Ve bu durumda, orada hiçbir şeyimiz yok.
‫Doğru.
‫Dolayısıyla, ilişkili hayvanları göstermesi gereken bir şey seçmedik.
‫Bu yüzden buradaki istisnadan kurtulacağım.
‫Ve bu arada.
‫Evet.
‫Geri kalan her şey iyi olmalı.
‫Pekala.
‫Evet, hepsi bu kadar.
‫Artık uygulamanızdan bileşenleri nasıl sileceğinizi biliyorsunuz ve bir sonraki videoda listemize
‫bir şeyler ekleyeceğiz.
‫Orada görüşürüz.