Aracılığıyla paylaş


İzlenecek yol: Verileri Düzenleme (Visual Basic)

Bu kılavuz, veritabanında veri ekleme, değiştirme ve silmeye yönelik temel bir uçtan uca LINQ to SQL senaryosu sağlar. Müşteri eklemek, müşterinin adını değiştirmek ve siparişi silmek için örnek Northwind veritabanının bir kopyasını kullanacaksınız.

Uyarı

Bilgisayarınız, aşağıdaki yönergelerde bazı Visual Studio kullanıcı arabirimi öğeleri için farklı adlar veya konumlar gösterebilir. Sahip olduğunuz Visual Studio sürümü ve kullandığınız ayarlar bu öğeleri belirler. Daha fazla bilgi için bkz. IDE'yi Kişiselleştirme.

Bu kılavuz, Visual Basic Geliştirme Ayarları kullanılarak yazılmıştır.

Önkoşullar

Bu izlenecek yol aşağıdakileri gerektirir:

  • Bu kılavuzda, dosyaları tutmak için ayrılmış bir klasör ("c:\linqtest2") kullanılır. İzlenecek yol başlamadan önce bu klasörü oluşturun.

  • Northwind örnek veritabanı.

    Geliştirme bilgisayarınızda bu veritabanı yoksa, microsoft indirme sitesinden indirebilirsiniz. Yönergeler için bkz. Örnek Veritabanlarını İndirme. Veritabanını indirdikten sonra northwnd.mdf dosyasını c:\linqtest2 klasörüne kopyalayın.

  • Northwind veritabanından oluşturulan bir Visual Basic kod dosyası.

    Nesne İlişkisel Tasarımcısı'nı veya SQLMetal aracını kullanarak bu dosyayı oluşturabilirsiniz. Bu izlenecek yol, SQLMetal aracı aşağıdaki komut satırıyla kullanılarak yazılmıştır:

    sqlmetal /code:"c:\linqtest2\northwind.vb" /language:vb "C:\linqtest2\northwnd.mdf" /pluralize

    Daha fazla bilgi için bkz. SqlMetal.exe (Kod Oluşturma Aracı).

Genel Bakış

Bu kılavuz altı ana görevden oluşur:

  • Visual Studio'da LINQ to SQL çözümü oluşturma.

  • Veritabanına kod dosyasını projeye ekleme.

  • Yeni bir müşteri nesnesi oluşturma.

  • Müşterinin iletişim adını değiştirme.

  • Sipariş siliniyor.

  • Bu değişiklikler Northwind veritabanına gönderiliyor.

LINQ to SQL Çözümü Oluşturma

Bu ilk görevde, LINQ to SQL projesi oluşturmak ve çalıştırmak için gerekli başvuruları içeren bir Visual Studio çözümü oluşturacaksınız.

LINQ to SQL çözümü oluşturmak için

  1. Visual Studio Dosya menüsünde Yeni Proje'ye tıklayın.

  2. Yeni Proje iletişim kutusundaki Proje türleri bölmesinde Visual Basic'e tıklayın.

  3. Şablonlar bölmesinde Konsol Uygulaması'na tıklayın.

  4. Ad kutusuna LinqDataManipulationApp yazın.

  5. Tamam'a tıklayın.

LINQ Başvuruları ve Yönergeleri Ekleme

Bu kılavuzda, projenizde varsayılan olarak yüklenmemiş olabilecek derlemeler kullanılır. Projenizde başvuru olarak listelenmiyorsa System.Data.Linq (Çözüm Gezgini'ndeTüm Dosyaları Göster'e tıklayın ve Başvurular düğümünü genişletin), aşağıdaki adımlarda açıklandığı gibi ekleyin.

System.Data.Linq eklemek için

  1. Çözüm Gezgini'da Başvurular'a sağ tıklayın ve ardından Başvuru Ekle'ye tıklayın.

  2. Başvuru Ekle iletişim kutusunda .NET'e tıklayın, System.Data.Linq derlemesine ve ardından Tamam'a tıklayın.

    Projeye montaj eklendi.

  3. Kod düzenleyicisinde Module1'in üzerine aşağıdaki yönergeleri ekleyin:

    Imports System.Data.Linq
    Imports System.Data.Linq.Mapping
    
    

Northwind Kod Dosyasını Projeye Ekleme

Bu adımlarda, Northwind örnek veritabanından bir kod dosyası oluşturmak için SQLMetal aracını kullandığınız varsayılır. Daha fazla bilgi için bu kılavuzun önceki bölümlerinde yer alan Önkoşullar bölümüne bakın.

Northwind kod dosyasını projeye eklemek için

  1. Project menüsünde, Varolan Öğe Ekleöğesine tıklayın.

  2. Varolan Öğe Ekle iletişim kutusunda c:\linqtest2\northwind.vb gidin ve Ekle'ye tıklayın.

    northwind.vb dosyası projeye eklenir.

Veritabanı Bağlantısını Ayarlama

İlk olarak, veritabanı bağlantınızı test edin. Özellikle veritabanının adı olan Northwnd'da i karakteri bulunmadığını unutmayın. Sonraki adımlarda hata oluşturursanız, Northwind kısmi sınıfının nasıl yazıldığını belirlemek için northwind.vb dosyasını gözden geçirin.

Veritabanı bağlantısını ayarlamak ve test etmek için

  1. aşağıdaki kodu yazın veya içine Sub Mainyapıştırın:

    ' Use a connection string, but connect to
    '     the temporary copy of the database.
    Dim db As New Northwnd _
        ("C:\linqtest2\northwnd.mdf")
    
    ' Keep the console window open after activity stops.
    Console.ReadLine()
    
  2. Bu noktada uygulamayı test etmek için F5 tuşuna basın.

    Konsol penceresi açılır.

    Konsol penceresinde Enter tuşuna basarak veya Visual Studio Hata Ayıklama menüsünde Hata Ayıklamayı Durdur'a tıklayarak uygulamayı kapatın.

Yeni Varlık Oluşturma

Yeni varlık oluşturmak basittir. Anahtar sözcüğünü Customer kullanarak nesneler (örneğinNew) oluşturabilirsiniz.

Bu ve aşağıdaki bölümlerde, yalnızca yerel önbellekte değişiklik yapıyorsunuz. Adım adım rehberin sonuna doğru SubmitChanges çağrılana kadar veritabanına hiçbir değişiklik gönderilmez.

Yeni bir Müşteri varlığı nesnesi eklemek için

  1. Yeni bir Customer oluşturmak için Console.ReadLine önüne Sub Main içinde aşağıdaki kodu ekleyin:

    ' Create the new Customer object.
    Dim newCust As New Customer()
    newCust.CompanyName = "AdventureWorks Cafe"
    newCust.CustomerID = "A3VCA"
    
    ' Add the customer to the Customers table.
    db.Customers.InsertOnSubmit(newCust)
    
    Console.WriteLine("Customers matching CA before insert:")
    
    Dim custQuery = _
        From cust In db.Customers _
        Where cust.CustomerID.Contains("CA") _
        Select cust
    
    For Each cust In custQuery
        Console.WriteLine("Customer ID: " & cust.CustomerID)
    Next
    
  2. Çözümde hata ayıklamak için F5 tuşuna basın.

    Konsol penceresinde gösterilen sonuçlar aşağıdaki gibidir:

    Customers matching CA before insert:

    Customer ID: CACTU

    Customer ID: RICAR

    Yeni satırın sonuçlarda görünmediğini unutmayın. Yeni veriler henüz veritabanına gönderilmedi.

  3. Hata ayıklamayı durdurmak için Konsol penceresinde Enter tuşuna basın.

Varlığı Güncelleştirme

Aşağıdaki adımlarda, bir Customer nesneyi alır ve özelliklerinden birini değiştirirsiniz.

Müşterinin adını değiştirmek için

  • Yukarıdaki Console.ReadLine()kodu ekleyin:

    Dim existingCust = _
        (From cust In db.Customers _
         Where cust.CustomerID = "ALFKI" _
         Select cust).First()
    
    ' Change the contact name of the customer.
    existingCust.ContactName = "New Contact"
    

Varlık Silme

Aynı müşteri nesnesini kullanarak ilk siparişi silebilirsiniz.

Aşağıdaki kod, satırlar arasındaki ilişkilerin nasıl kesilip silineceği ve veritabanından bir satırın nasıl silineceği gösterilmektedir.

Satırı silin

  • Aşağıdaki kodu hemen üstüne Console.ReadLine()ekleyin:

    ' Access the first element in the Orders collection.
    Dim ord0 As Order = existingCust.Orders(0)
    
    ' Access the first element in the OrderDetails collection.
    Dim detail0 As OrderDetail = ord0.OrderDetails(0)
    
    ' Display the order to be deleted.
    Console.WriteLine _
        (vbCrLf & "The Order Detail to be deleted is: OrderID = " _
        & detail0.OrderID)
    
    ' Mark the Order Detail row for deletion from the database.
    db.OrderDetails.DeleteOnSubmit(detail0)
    

Değişiklikleri Veritabanına Gönderme

Nesneleri oluşturmak, güncelleştirmek ve silmek için gereken son adım, değişiklikleri veritabanına göndermektir. Bu adım olmadan, değişiklikleriniz yalnızca yereldir ve sorgu sonuçlarında görünmez.

Değişiklikleri veritabanına göndermek için

  1. Aşağıdaki kodu hemen üstüne Console.ReadLineekleyin:

    db.SubmitChanges()
    
  2. Değişiklikleri göndermenin önce ve sonra etkilerini göstermek için aşağıdaki kodu ( SubmitChangessonra) ekleyin:

    Console.WriteLine(vbCrLf & "Customers matching CA after update:")
    Dim finalQuery = _
        From cust In db.Customers _
        Where cust.CustomerID.Contains("CA") _
        Select cust
    
    For Each cust In finalQuery
        Console.WriteLine("Customer ID: " & cust.CustomerID)
    Next
    
  3. Çözümde hata ayıklamak için F5 tuşuna basın.

    Konsol penceresi aşağıdaki gibi görünür:

    Customers matching CA before update:  
    Customer ID: CACTU  
    Customer ID: RICAR  
    
    The Order Detail to be deleted is: OrderID = 10643  
    
    Customers matching CA after update:  
    Customer ID: A3VCA  
    Customer ID: CACTU  
    Customer ID: RICAR  
    
  4. Hata ayıklamayı durdurmak için Konsol penceresinde Enter tuşuna basın.

Uyarı

Değişiklikleri göndererek yeni müşteriyi ekledikten sonra, aynı müşteriyi yeniden ekleyemediğiniz için bu çözümü olduğu gibi yeniden yürütemezsiniz. Çözümü yeniden yürütmek için, eklenecek müşteri kimliğinin değerini değiştirin.

Ayrıca bakınız