![]() |
|
|||||||
| Php, Asp, Flash, Java, Html Php, asp, flash, java, html ve tüm web azılım dilleri hakkında bilgi paylaşımı yapabileceğiniz bölüm. |
| Tags: linq ile insert |
![]() |
|
|
Seçenekler |
|
|
#1 |
|
Se®ve® Administ®ato®
![]() ![]() ![]() |
LINQ ile veritabanına sorgu göndererek istediğimiz verileri alabileceğimiz örneklere blogumda eski yazılarımda bolca yer verdim. Fakat aslında LINQ sadece veritabanından veri çekmek için değil yeri geldiğinde veritabanına veri göndermek, yani INSERT, UPDATE ve DELETE işlemleri için de rahatlıkla kullanılabilir.
Aşağıdaki şekliyle bir DBML dosyamız ve tabi ki bir de buna bağlı veritabanımız olduğunu varsayalım. ![]() Örneğimizdeki DBML dosyamızın yapısı. Partial Class _Default Inherits System.Web.UI.Page Dim MyData As New DataClassesDataContext Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click Dim x As AnaBolumler = (From MyTable In MyData.AnaBolumlers Select MyTable Take 1).SingleOrDefault x.AnaName = "Ahmet" MyData.SubmitChanges() End Sub End Class Yukarıdaki kod örneğinizde AnaBolumler adında bir değişken yaratarak veritabanından tek bir kayıt almak için de LINQ deyiminde Take 1 kısmını kullanıyoruz. Siz kendi örneklerinizde isterseniz PK üzerinden sorgular da düzenleyebilirsiniz. Yukarıdaki gibi bir LINQ sorgusu geriye bir dizi döndüreceği için tek bir nesneye eşitleme şansımız olmaz. O nedenle sorgunun geriye sadece tek bir nesne döndürebilmesi için ayrıca SingleOrDefault deyimini de kullanmamız gerekiyor. Aldığımız nesnenin herhangi bir özelliğini istediğimiz gibi değiştirdikten sonra artık geriye kalan DataContext üzerinden SubmitChanges metodunu çağırarak değişikliklerin veritabanına yansıtılmasını sağlamak. Şimdi bir de INSERT işlemi yapalım. Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click Dim x As New AnaBolumler x.AnaName = "Ahmet2" MyData.AnaBolumlers.InsertOnSubmit(x) MyData.SubmitChanges() End Sub Kod içerisinde veritabanına gönderilmek üzere yeni bir AnaBolumler nesnesi yaratarak nesnenin tüm özelliklerini belirliyoruz. Sonrasında DataContext nesnemiz olan MyData üzerinden AnaBolumlers tablosunun INSERT edilecek satırlar listesine InsertOnSubmit metodu ile satırımızı ekliyoruz. Tüm bu işlemleri tamamladıktan sonra DataContext'in SubmitChanges metodu ile değişikliklerin, yani bu örnekte yeni eklenen satırların veritabanına aktarılmasını sağlıyoruz. Son olarak bir DELETE yapmanın yoluna göz atalım. Protected Sub Button3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button3.Click Dim x As AnaBolumler = (From MyTable In MyData.AnaBolumlers Select MyTable Take 1).SingleOrDefault MyData.AnaBolumlers.DeleteOnSubmit(x) MyData.SubmitChanges() End Sub Yukarıdaki kod içerisinde yarattığımız X adındaki AnaBolumler nesnesine veritabanından silmek istediğimiz nesneyi bir LINQ sorgusu ile aktarıyoruz. Sonraki satırda DataContext içerisinde AnaBolumler tablosunun silinecek kayırlar listesine elimizdeki X değişkenini DeleteOnSubmit metodu ile ekliyoruz. En sonunda da yine DataContext'in SubmitChanges metodu ile değişikliklerin veritabanına yansımasını sağlıyoruz. İşte LINQ ile veritabanında kayıtlar üzerinde değişiklik yapmak bu kadar kolay. Mesajınızda: -> Mail Adresinizi verirseniz, -> Konuyla alakasız yorum yaparsanız / Konuyla alakasız bir soru sorarsanız, -> Amaçsız, içinde paylaşım olmayan, saçma konular açarsanız, -> Üstüste mesaj yazarsanız ( Flood yapmakda denir), -> Küfür ederseniz, -> Konuyla alakasız bir başlık atarsanız, -> Mesajınızın tamamını büyük harfler veya puntolar kullanarak yazarsanız, Mesajınız SİLİNİR ayrıca siz BANLANIRSINIZ. ![]() Bu tip mesajları ihbar etmek için yukarıda işaretlenmiş olan yere tıklayarak yöneticiyi uyarabilirsiniz. нαуαт, öℓüмℓє кυмαя σуηαмα ѕαηαтı∂ıя... [ÜYE OLMADAN LİNKLERİ GÖREMEZSİNİZ. BURAYA TIKLAYARAK BEDAVA ÜYE OLUN...] AkdenizForum Toolbar Sitemizi Daha İyi Kullanmak İstiyorsanız Daha Kolaylıkla Sizde İndirin [ÜYE OLMADAN LİNKLERİ GÖREMEZSİNİZ. BURAYA TIKLAYARAK BEDAVA ÜYE OLUN...] |
|
|
|