Aracılığıyla paylaş


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

Language-Integrated 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 makaledeki örneklerde Northwind örnek veritabanı kullanılmıştır. Veritabanını edinmek 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 /Veritabanı Gezgini açın ve ardındanSunucu Gezgini/Veritabanı Gezgini'ni seçin.

  2. Sunucu Gezgini/Veri Bağlantıları sağ tıklayın ve Bağlantı Ekleöğesine 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'yi işaret edin ve Projeöğesine tıklayın. Proje türü olarak Visual Basic Windows Forms Uygulaması'ni seçin.

  2. Project menüsünde Yeni Öğe Ekletıklayın. LINQ to SQL Sınıfları öğe şablonunu seçin.

  3. dosyayı northwind.dbmlolarak adlandırın. Ekle'e tıklayın. Nesne İlişkisel Tasarımcısı (O/R Tasarımcısı) northwind.dbml dosyası için açılır.

Tasarımcıya sorgu tabloları eklemek ve değiştirmek için

  1. Sunucu Gezgini/Veritabanı Gezginiiçinde, Northwind veritabanı bağlantısını genişletin. Tablolar klasörünü genişletin.

    O/R Tasarımcısı'nı kapattıysanız, daha önce eklediğiniz northwind.dbml dosyasına çift tıklayarak 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'dan, bir DataGridView kontrol öğesini projeniz için varsayılan Windows Formu olan Form1'e sürükleyin.

  2. O/R Tasarımcısı'na tablo eklediğinizde tasarımcı projenize bir DataContext nesnesi 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. Projenizin DataContext nesnesi, .dbml dosyanızın adına göre adlandırılır. Bu proje için DataContext nesnesi northwindDataContextolarak adlandırılır.

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

    Windows Form, Form1'e çift tıklayarak, Load'in bir özelliği olarak sunulan Customers tablosunu sorgulamak üzere DataContext olayına kod ekleyin. Aşağıdaki 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'den forma üç Button denetimini sürükleyin. İlk Button denetimini seçin. Özellikler penceresinde, Name denetiminin Button'sini AddButton ve Text'ini Addolarak ayarlayın. İkinci düğmeyi seçin ve Name özelliğini UpdateButton ve Text özelliğini Updateolarak ayarlayın. Üçüncü düğmeyi seçin ve Name özelliğini DeleteButton ve Text özelliğini Deleteolarak ayarlayın.

  4. olayına kod eklemek için Click düğmesine çift tıklayın. Aşağıdaki 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 eklemek için Click düğmesine çift tıklayın. Aşağıdaki 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 eklemek için Click düğmesine çift tıklayın. Aşağıdaki 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 tıklayın. Yeni kaydı silmek için Sil'e tıklayın.

Ayrıca bkz.