Aracılığıyla paylaş


Nasıl yapılır: Sorgu Sonuçlarını LINQ Kullanarak Filtreleme (Visual Basic)

Dil tümleştirilmiş sorgu (LINQ) veritabanı bilgilerini erişmek ve sorguları yürütmek kolaylaştırır.

Aşağıdaki örnek, bir sql Server veritabanında sorgular yapar ve sonuçları belirli bir değeri kullanarak filtreleri yeni bir uygulama oluşturulması gösterilmiştir Where yan tümcesi.Daha fazla bilgi için bkz. Where Tümcesi (Visual Basic).

Bu konudaki örnek Northwind örnek veritabanını kullanır.Northwind örnek veritabanındaki geliştirme bilgisayarınızda yoksa, buradan yükleyebilirsiniz Microsoft Yükleme Merkezi'nden Web sitesi.Yönergeler için bkz: Downloading Sample Databases.

[!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. Visual Studio'da Geliştirme Ayarlarını özelleştirme.

Bir veritabanı bağlantısı oluşturmak için

  1. Visual Studio'da açık Server Explorer/Database Explorer tıklatarak Server Explorer/Database Explorer , View menü.

  2. Sağ Veri bağlantıları , Server Explorer/Database ExplorerAdd Connection.

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

LINQ sql dosyası içeren bir proje eklemek için

  1. Visual Studio, Dosya menüsü, YeniProje.Visual Basic'i seçin Windows Forms uygulamasý proje türü.

  2. Proje menüsünde, Yeni Öğe Ekle'yi tıklatın.Seçin sql sınıfları için LINQ Item template.

  3. Dosya adı northwind.dbml.Ekle‘yi tıklatın.Nesne ilişkisel Tasarımcısı (o/r Tasarımcısı) için northwind.dbml dosyasını açar.

o/r Tasarımcısı sorgu tablolar eklemek için

  1. İçinde Server Explorer/Database Explorer, Northwind veritabanı bağlantısı'nı genişletin.Genişletme Tablo klasörü.

    o/r Tasarımcısı kapattıysanız, daha önce eklenen northwind.dbml dosyasını çift tıklatarak yeniden açabilirsiniz.

  2. Müşteriler tablosunu tıklatın ve tasarımcı sol bölmesine sürükleyin.Orders tablosunu tıklatın ve Tasarımcısı sol bölmesine sürükleyin.

    Tasarımcı oluşturur Yeni Customer ve Order projeniz için nesneler.Tasarımcısı otomatik olarak tabloları arasındaki ilişkileri algılar ve alt ilgili nesnelerin özelliklerini oluşturur dikkat edin.Örneğin, IntelliSense, gösterecektir Customer nesne olan bir Orders özelliği tüm siparişler için o müşteri ile ilgili.

  3. Değişikliklerinizi kaydetmek ve designer'ı kapatın.

  4. Projeyi kaydedin.

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

  1. Dan araç, sürükleyin bir DataGridView üzerine Form1 projeniz için varsayılan Windows Form denetimi.

  2. Form1'i kodu eklemek için çift Load formun olay.

  3. o/r Tasarımcısı tabloları eklendiğinde tasarımcıya eklenen bir DataContext projeniz için nesne.Bu nesne, ayrı ayrı nesnelerin ve koleksiyonların her tablo için ek olarak bu tabloları erişmek için gereken kodu içerir.DataContext Nesne projenizin adlı .dbml dosyasının adını esas.Bu proje için DataContext nesne adındaki northwindDataContext.

    Bir örneğini oluşturmak DataContext kodu ve sorgu o/r Tasarımcısı tarafından belirtilen tablolar.

    Aşağıdaki kodu ekleyip Load veri içeriğiniz özellikleri olarak sergilenen tabloları sorguladığınızda olay.Sorgu sonuçları filtre uygular ve bulunan müşterileri verir London.

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

  5. Deneyebileceğiniz bazı filtreler aşağıdadır.

    Dim companies_H = From cust In db.Customers 
                      Where cust.Orders.Count > 0 And
                            cust.CompanyName.StartsWith("H") 
                      Select cust.CustomerID, cust.CompanyName, 
                             OrderCount = cust.Orders.Count, 
                             cust.Country
    
    Dim customers_USA = From cust In db.Customers 
                        Where cust.Orders.Count > 15 And
                              cust.Country = "USA"  
                        Select cust.CustomerID, cust.CompanyName, 
                               OrderCount = cust.Orders.Count, 
                               cust.Country
    

Ayrıca bkz.

Görevler

Walkthrough: Creating LINQ to SQL Classes (O/R Designer)

Kavramlar

DataContext Methods (O/R Designer)

Diğer Kaynaklar

Visual Basic'de LINQ

Sorgular (Visual Basic)

LINQ to SQL [LINQ to SQL]