Nasıl yapılır: LINQ Kullanarak Veritabanındaki Verileri Değiştirme (Visual Basic)

Dil Tümleşik Sorgu (LINQ) sorguları, veritabanı bilgilerine erişmeyi ve veritabanındaki değerleri değiştirmeyi kolaylaştırır.

Aşağıdaki örnekte, SQL Server veritabanındaki bilgileri alan ve güncelleştiren yeni bir uygulamanın nasıl oluşturulacağı gösterilmektedir.

Bu konudaki örneklerde Northwind örnek veritabanı kullanılmıştır. Geliştirme bilgisayarınızda bu veritabanı yoksa, bu veritabanını Microsoft İndirme Merkezi'nden indirebilirsiniz. Yönergeler için bkz . Örnek Veritabanlarını İndirme.

Veritabanına bağlantı oluşturmak için

  1. Visual Studio'da, Görünüm menüsüne tıklayarak Sunucu Gezgini/Veritabanı Gezgini'ni açın ve ardından Sunucu Gezgini Veritabanı Gezgini'ni/ seçin.

  2. Sunucu Gezgini Veritabanı Gezgini'nde/ Veri Bağlan ions'a sağ tıklayın ve Bağlan ekle'ye tıklayın.

  3. Northwind örnek veritabanı için geçerli bir bağlantı belirtin.

SQL dosyasına LINQ içeren bir Proje eklemek için

  1. Visual Studio'da, Dosya menüsünde Yeni'nin üzerine gelin ve Proje'ye tıklayın. Proje türü olarak Visual Basic Windows Forms Uygulaması'nı seçin.

  2. Proje menüsünde Yeni Öğe Ekle'ye tıklayın. LINQ to SQL Sınıfları öğe şablonunu seçin.

  3. Dosyayı northwind.dbml olarak adlandırın. Ekle'yi tıklatın. dosya için northwind.dbml Nesne İlişkisel Tasarımcısı (O/R Tasarım Aracı) açılır.

Sorguya tablo eklemek ve tasarımcıya değiştirmek için

  1. Sunucu Gezgini/Veritabanı Gezgini'nde Northwind veritabanı bağlantısını genişletin. Tablolar klasörünü genişletin.

    O/R Tasarım Aracı kapattıysanız, daha önce eklediğiniz dosyaya northwind.dbml çift tıklayarak dosyayı yeniden açabilirsiniz.

  2. Müşteriler tablosuna tıklayın ve tasarımcının sol bölmesine sürükleyin.

    Tasarımcı, projeniz için yeni bir Customer nesnesi oluşturur.

  3. Değişikliklerinizi kaydedin ve tasarımcıyı kapatın.

  4. Projenizi kaydedin.

Veritabanını değiştirmek ve sonuçları görüntülemek için kod eklemek için

  1. Araç Kutusu'ndan, bir DataGridView denetimi projeniz için varsayılan Windows Formu olan Form1'e sürükleyin.

  2. O/R Tasarım Aracı tablolar eklediğinizde tasarımcı projenize bir DataContext nesne ekledi. Bu nesne, Müşteriler tablosuna erişmek için kullanabileceğiniz kodu içerir. Ayrıca, tablo için yerel customer nesnesini ve Customers koleksiyonunu tanımlayan kodu da içerir. DataContext Projenizin nesnesi, .dbml dosyanızın adına göre adlandırılır. Bu proje için DataContext nesnesi olarak adlandırılır northwindDataContext.

    Kodunuzda nesnenin DataContext bir örneğini oluşturabilir ve O/R Tasarım Aracı tarafından belirtilen Customers koleksiyonunu sorgulayabilir ve değiştirebilirsiniz. Customers koleksiyonunda yaptığınız değişiklikler, siz nesnesinin yöntemini DataContext çağırarak SubmitChanges gönderene kadar veritabanına yansıtılmaz.

    Özelliği olarak DataContextkullanıma sunulan Customers tablosunu sorgulamak Load üzere olaya kod eklemek için Windows Form, Form1'e çift tıklayın. Şu kodu ekleyin:

    Private db As northwindDataContext
    
    Private Sub Form1_Load(ByVal sender As System.Object,
                           ByVal e As System.EventArgs
                          ) Handles MyBase.Load
      db = New northwindDataContext()
    
      RefreshData()
    End Sub
    
    Private Sub RefreshData()
      Dim customers = From cust In db.Customers
                      Where cust.City(0) = "W"
                      Select cust
    
      DataGridView1.DataSource = customers
    End Sub
    
  3. Araç Kutusu'ndan forma üç Button denetim sürükleyin. İlk Button denetimi seçin. Özellikler penceresinde, denetimin AddButtonTextNameAddButton ve olarak ayarlayın. İkinci düğmeyi seçin ve özelliğini UpdateButton olarak ve Text özelliğini olarak UpdateayarlayınName. Üçüncü düğmeyi seçin ve özelliğini DeleteButton olarak ve Text özelliğini olarak DeleteayarlayınName.

  4. Olayına kod Click eklemek için Ekle düğmesine çift tıklayın. Şu kodu ekleyin:

    Private Sub AddButton_Click(ByVal sender As System.Object,
                                ByVal e As System.EventArgs
                               ) Handles AddButton.Click
      Dim cust As New Customer With {
        .City = "Wellington",
        .CompanyName = "Blue Yonder Airlines",
        .ContactName = "Jill Frank",
        .Country = "New Zealand",
        .CustomerID = "JILLF"}
    
      db.Customers.InsertOnSubmit(cust)
    
      Try
        db.SubmitChanges()
      Catch
        ' Handle exception.
      End Try
    
      RefreshData()
    End Sub
    
  5. Olayına kod Click eklemek için Güncelleştir düğmesine çift tıklayın. Şu kodu ekleyin:

    Private Sub UpdateButton_Click(ByVal sender As System.Object, _
                                   ByVal e As System.EventArgs
                                  ) Handles UpdateButton.Click
      Dim updateCust = (From cust In db.Customers
                        Where cust.CustomerID = "JILLF").ToList()(0)
    
      updateCust.ContactName = "Jill Shrader"
      updateCust.Country = "Wales"
      updateCust.CompanyName = "Red Yonder Airlines"
      updateCust.City = "Cardiff"
    
      Try
        db.SubmitChanges()
      Catch
        ' Handle exception.
      End Try
    
      RefreshData()
    End Sub
    
  6. Olayına kod Click eklemek için Sil düğmesine çift tıklayın. Şu kodu ekleyin:

    Private Sub DeleteButton_Click(ByVal sender As System.Object, _
                                   ByVal e As System.EventArgs
                                  ) Handles DeleteButton.Click
      Dim deleteCust = (From cust In db.Customers
                        Where cust.CustomerID = "JILLF").ToList()(0)
    
      db.Customers.DeleteOnSubmit(deleteCust)
    
      Try
        db.SubmitChanges()
      Catch
        ' Handle exception.
      End Try
    
      RefreshData()
    End Sub
    
  7. Projenizi çalıştırmak için F5 tuşuna basın. Yeni kayıt eklemek için Ekle'ye tıklayın. Yeni kaydı değiştirmek için Güncelleştir'e tıklayın. Yeni kaydı silmek için Sil'e tıklayın.

Ayrıca bkz.