Aracılığıyla paylaş


Nasıl yapılır: LINQ Kullanarak Veritabanını Sorgulama (Visual Basic)

Language-Integrated Sorgusu (LINQ), veritabanı bilgilerine erişmeyi ve sorguları yürütmeyi kolaylaştırır.

Aşağıdaki örnekte, SQL Server veritabanında sorgular gerçekleş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.

Not

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.

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

  1. Visual Studio'da, Görünüm menüsünde /Veritabanı Gezgini tıklayarak /Veritabanı Gezgini açın.

  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.

LINQ to SQL dosyası içeren bir proje eklemek için

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

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

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

O/R Tasarımcısı'na sorguya tablo eklemek 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. Siparişler tablosuna tıklayın ve tasarımcının sol bölmesine sürükleyin.

    Tasarımcı, projeniz için yeni Customer ve Order nesneleri oluşturur. Tasarımcının tablolar arasındaki ilişkileri otomatik olarak algılayıp ilgili nesneler için alt özellikler oluşturduğuna dikkat edin. Örneğin IntelliSense, Customer nesnesinin bu müşteriyle ilgili tüm siparişler için bir Orders özelliği olduğunu gösterir.

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

  4. Projenizi kaydedin.

Veritabanını sorgulamak ve sonuçları görüntülemek için kod eklemek için

  1. Projeniz için varsayılan Windows Formu olan Form1'e, Araç Kutusu'den bir DataGridView kontrolü sürükleyin.

  2. Formun Load olayına kod eklemek için Form1'e çift tıklayın.

  3. O/R Tasarımcısı'na tablo eklediğinizde tasarımcı projeniz için bir DataContext nesnesi ekledi. Bu nesne, her tablo için ayrı ayrı nesnelere ve koleksiyonlara ek olarak bu tablolara erişmek için ihtiyacınız olan kodu 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 bir DataContext örneği oluşturabilir ve O/R Tasarımcısı tarafından belirtilen tabloları sorgulayabilirsiniz.

    Veri bağlamınızın özellikleri olarak sunulan tabloları sorgulamak için aşağıdaki kodu Load olayına ekleyin.

    Dim db As New northwindDataContext
    
    Dim londonCusts = From cust In db.Customers
                      Where cust.City = "London"
                      Select cust
    
    DataGridView1.DataSource = londonCusts
    
  4. Projenizi çalıştırmak ve sonuçları görüntülemek için F5 tuşuna basın.

  5. Deneyebileceğiniz bazı ek sorgular aşağıdadır:

    Dim londonCustOrders = From cust In db.Customers,
                                ord In cust.Orders
                           Where cust.City = "London"
                           Order By ord.OrderID
                           Select cust.City, ord.OrderID, ord.OrderDate
    
    DataGridView1.DataSource = londonCustOrders
    
    Dim custs = From cust In db.Customers
                Where cust.Country = "France" And
                    (cust.CompanyName.StartsWith("F") Or
                     cust.CompanyName.StartsWith("V"))
                Order By cust.CompanyName
                Select cust.CompanyName, cust.City
    
    DataGridView1.DataSource = custs
    

Ayrıca bkz.