Nasıl yapılır: LINQ Kullanarak Count, Sum veya Average Verisi (Visual Basic)

DilLe Tümleşik Sorgu (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. Örnek, ve Group By yan tümcelerini kullanarak Aggregate sonuçları sayar, özetler ve ortalamasını alır. Daha fazla bilgi için bkz . Toplama Yan Tümcesi ve Gruplandırma Ölçütü Yan Tümcesi.

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.

Not

Bilgisayarınız, aşağıdaki yönergelerde yer alan Visual Studio kullanıcı arabirimi öğelerinden bazıları 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 Sunucu Gezgini/Veritabanı Gezgini'ne tıklayarak Sunucu Gezgini/Veritabanı Gezgini'ni açın.

  2. Sunucu Gezgini Veritabanı Gezgini'nde/ Veri Bağlan ions'a sağ tıklayın ve ardından Bağlan ekle'ye 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'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. Nesne İlişkisel Tasarımcısı (O/R Tasarım Aracı) northwind.dbml dosyası için açılır.

O/R Tasarım Aracı sorguya tablo eklemek 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 northwind.dbml dosyasına ç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. 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 nesneler 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 nesnenin Customer 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. Araç Kutusu'ndan, bir DataGridView denetimi projeniz için varsayılan Windows Formu olan Form1'e sürükleyin.

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

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

    Ve say, toplam ve ortalama sonuçlarınızın DataContext özellikleri olarak gösterilen tabloları sorgulamak için olaya aşağıdaki kodu Load ekleyin. Örnek, tek bir sonucu sorgulamak için yan tümcesini ve gruplandırılmış sonuçların ortalamasını Group By göstermek için yan tümcesini kullanırAggregate.

    Dim db As New northwindDataContext
    Dim msg = ""
    
    Dim londonCustomerCount = Aggregate cust In db.Customers
                              Where cust.City = "London"
                              Into Count()
    msg &= "Count of London Customers: " & londonCustomerCount & vbCrLf
    
    Dim averageOrderCount = Aggregate cust In db.Customers
                            Where cust.City = "London"
                            Into Average(cust.Orders.Count)
    msg &= "Average number of Orders per customer: " &
           averageOrderCount & vbCrLf
    
    Dim venezuelaTotalOrders = Aggregate cust In db.Customers
                               Where cust.Country = "Venezuela"
                               Into Sum(cust.Orders.Count)
    msg &= "Total number of orders from Customers in Venezuela: " &
           venezuelaTotalOrders & vbCrLf
    
    MsgBox(msg)
    
    Dim averageCustomersByCity = From cust In db.Customers
                                 Group By cust.City
                                 Into Average(cust.Orders.Count)
                                 Order By Average
    
    DataGridView1.DataSource = averageCustomersByCity
    
    'Another way to grab the count and sum
    
    londonCustomerCount = (From cust in db.Customers
                           Where cust.City = "London").Count()
    
    venezuelaTotalOrders = (From cust in db.Customers
                            Where cust.Country = "Venezuela"
                            Select cust.Orders).Sum()
    
  4. Projenizi çalıştırmak ve sonuçları görüntülemek için F5 tuşuna basın.

Ayrıca bkz.