Merhabalar,
Bu makalemde sizlere veritabanındaki bir bilginin güncelleştirilmesi ve silinmesine ilişkin konuları anlatacağım. Bu bölümde kullanacağınız tasarımı hazırladığınızı var kabul edip hemen anlatıma geçiyorum. Daha önceki makalelerimde olduğu gibi “KullaniciGuncellestir” isminde bir WCF Service oluşturduktan sonra KullaniciGuncellestir.svc.cs dosyamızın içerisine aşağıdaki kod bloklarını ekliyoruz. Diğer makalelerimde olduğu gibi ilgili servisimizi çağırıyoruz.
[C#]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.Text; using System.ServiceModel.Activation;//bunu ekle namespace Ders2.Web { [ServiceContract(Namespace = "")] [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] //satırında hata almamak için servicemodel.activation namespacesini ekliyoruz. public class KullaniciGuncellestir { DataClasses1DataContext data = new DataClasses1DataContext(); [OperationContract] //satırını eklemeyi unutmayın... public bool Guncelle(int id,string isim,string soyisim,DateTime dogumtarihi,string dogumyeri,string okul,string bolum,string telefon) { var t = (from inc in data.KullaniciBilgileris where id == inc.ID select inc).SingleOrDefault(); if (t != null) { t.Isım = isim; t.Soyisim = soyisim; t.Dogumtarihi = dogumtarihi; t.Dogumyeri = dogumyeri; t.Okul = okul; t.Bolum = bolum; t.Telefon = telefon; data.SubmitChanges(); return true; } else { return false; } } } } |
Burada güncellenecek kişinin id numarasıyla birlikte yeni bilgilerini gönderiyoruz ve gelen id numarasına göre bir eşleştirme söz konusu olursa bilgilerini güncelliyoruz, sonuç olarak true değerini dönderiyoruz. Eğer bir eşleşme olmazsa false değerini dönderiyoruz.
MainPage.xaml.cs içerisindeki servis çağırma kodumuz aşağıdaki gibidir.
[C#]
1 2 3 4 5 6 7 8 9 10 11 12 |
private void button1_Click(object sender, RoutedEventArgs e) { servis3.GuncelleAsync(id, isim, soyisim, dogumtarihi, dogumyeri, okul, bolum, telefon); servis3.GuncelleCompleted+=new EventHandler<KuGuncelle.GuncelleCompletedEventArgs>(servis3_GuncelleCompleted); } void servis3_GuncelleCompleted(object sender, KuGuncelle.GuncelleCompletedEventArgs e) { if(e.Result==true) MessageBox.Show("Bilgiler Güncellendi"); else MessageBox.Show("Bilgiler Güncellenemedi!!!"); } |
Bu sayede bilgilerimizi güncelledik.
Gelelim veritabanımızdaki kayıtlı bir bilginin silinmesi konusuna…
Bu işlem içinde tıpkı yukarıda olduğu gibi “KullaniciSil” isimli bir WCF service oluşturup KullaniciSil.svc.cs isimli dosyamızın içeriğini aşağıdaki şekilde dolduruyoruz.
[C#]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.Text; using System.ServiceModel.Activation;//bunu ekle namespace Ders2.Web { [ServiceContract(Namespace = "")] [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] //satırında hata almamak için servicemodel.activation namespacesini ekliyoruz. public class KullaniciSil { DataClasses1DataContext data = new DataClasses1DataContext(); [OperationContract] //satırını eklemeyi unutmayın... public void Sil(int id) { KullaniciBilgileri kullanici = data.KullaniciBilgileris.First(k => k.ID == id); data.KullaniciBilgileris.DeleteOnSubmit(kullanici); } } } |
MainPage.xaml.cs dosyamızın içerisine servicemizi çağırıp parametre olarak silinecek kayıtın ID numarasını gönderiyoruz. Sonuç olarak silme işlemini başarılı bir şekilde gerçekleştirmiş oluyoruz.
Silverlight ile veritabanı işlemleri-1,2 ve 3 seri makalelerim ile temel veritabanı işlemlerinden(ekleme,lieteleme,güncelleme ve silme) bahsetmiş olduk. Umarım faydalı olur.
Not:Son makalemde fazla detay vermememin sebebi diğer makalelerimde service oluşturulması ve kullanımı hakkında yeterince bilgi verildiğini düşünüp aynı işlemleri tekrar anlatmanın gereğinin olmadığını düşünmemdir. Konu hakkında sorularınız olursa bana iletişim sayfasındaki iletişim bilgilerimden ulaşabilirsiniz.
hocam eyvallah 3 bölümlük güzel bi çalışma olmuş ama bu son kısmı biraz basit geçmişsiniz. güncelleme ve seçme için bilginin id’sini almamız gerekir, güncelleme için ilk önce bilgileri alanlara doldurmamız gerekir keşke bunları da anlatsaydınız. Teşekkürler
Sanırım datagrid üzerindeki herhangi bir satıra tıkladığınızda oradaki id numarasıyla ilgili kayıt üzerinde işlem yapmak istiyorsunuz. Bunun için “ObservableCollection” kullanmanız gerekiyor. Veritabanındaki bilgileri çektiğiniz servisin sonucunu ObservableCollection türünden oluşturduğunuz nesneye attıktan sonra bunu datagrid’e aktarın. Örneğimiz için bakacak olursak; servis2_GetirCompleted içerisindeki “dataGrid1.ItemSource=e.Result” yerine aşağıdaki değişiklikleri yapmalısınız.
ObservableCollectionKullanicilar;
void servis2_GetirCompleted(object sender, KuGetir.GetirCompletedEventArgs e)
{
Kullanicilar = e.Result;
dataGrid1.ItemsSource = Kullanicilar;
}
Not:”ObservableCollection” kullanabilmeniz için “using System.Collections.ObjectModel” referansını eklemeniz gerekiyor.
İyi çalışmalar.