Aracılığıyla paylaş


İzlenecek yol: DataGrid denetiminde SQL Server veritabanındaki verileri görüntüleme

Bu kılavuzda, bir SQL Server veritabanından veri alır ve bu verileri bir DataGrid denetiminde görüntülersiniz. Verileri temsil eden varlık sınıflarını oluşturmak için ADO.NET Entity Framework ve belirtilen verileri bir varlık sınıfından alan bir sorgu yazmak için LINQ kullanırsınız.

Önkoşullar

Bu kılavuzu tamamlamak için aşağıdaki bileşenlere ihtiyacınız vardır:

  • Visual Studio.

  • AdventureWorks örnek veritabanının bağlı olduğu çalışan bir SQL Server veya SQL Server Express örneğine erişim. AdventureWorks veritabanını GitHubadresinden indirebilirsiniz.

Varlık sınıfları oluşturma

  1. Visual Basic veya C# içinde yeni bir WPF Uygulaması projesi oluşturun ve DataGridSQLExampleolarak adlandırın.

  2. Çözüm Gezgini'nde projenize sağ tıklayın, Ekleüzerine gelin ve Yeni Öğeseçin.

    Yeni Öğe Ekle iletişim kutusu görüntülenir.

  3. Yüklü Şablonlar bölmesinde veri seçin ve şablon listesinde varlık veri modeliADO.NET seçin.

    Varlık Veri Modeli öğe şablonu ADO.NET

  4. Dosyayı AdventureWorksModel.edmx adlandırın ve Ekleöğesine tıklayın.

    Varlık Veri Modeli Sihirbazı görüntülenir.

  5. Model İçeriğini Seç ekranında, veritabanı'den EF Designer seçin ve ardından İleritıklayın.

  6. Veri Bağlantınızı Seçin ekranında AdventureWorksLT2008 veritabanınıza bağlantıyı sağlayın. Daha fazla bilgi için bkz. Veri Bağlantınızı Seçin İletişim Kutusu.

    Adın AdventureWorksLT2008Entities olduğundan ve App.Config'de varlık bağlantısı ayarlarını olarak kaydet onay kutusunun seçildiğinden emin olun ve ardından İleri'ye tıklayın.

  7. Veritabanı Nesnelerinizi Seçin ekranında Tablolar düğümünü genişletin ve Ürün ile ProductCategory tablolarını seçin.

    Tüm tablolar için varlık sınıfları oluşturabilirsiniz; ancak bu örnekte yalnızca bu iki tablodan veri alırsınız.

    Tablolardan Ürün ve ÜrünKategorisini Seçin

  8. Finish (Son) düğmesine tıklayın.

    Product ve ProductCategory varlıkları Varlık Tasarımcısı'nda görüntülenir.

    Ürün ve ProductCategory varlık modelleri

Verileri alma ve sunma

  1. MainWindow.xaml dosyasını açın.

  2. Width özelliğini Window üzerinde 450 olarak ayarlayın.

  3. XAML düzenleyicisinde, DataGrid ve <Grid> etiketleri arasına aşağıdaki </Grid> etiketini ekleyerek DataGridadlı bir dataGrid1 ekleyin.

    <DataGrid Name="dataGrid1" />
    

    DataGridDataGrid_SQL_EF_Step6 ile Penceresi

  4. Windowseçin.

  5. Özellikler penceresini veya XAML düzenleyicisini kullanarak, Window adlı ve Window_Loaded olayı için Loaded adında bir olay işleyicisi oluşturun. Daha fazla bilgi için bkz. Nasıl yapılır: Basit Olay İşleyicisi Oluşturma.

    Aşağıda MainWindow.xaml için XAML gösterilmektedir.

    Uyarı

    Visual Basic kullanıyorsanız MainWindow.xaml dosyasının ilk satırında x:Class="DataGridSQLExample.MainWindow" yerine x:Class="MainWindow"yazın.

    <Window x:Class="DataGridSQLExample.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="350" Width="450" 
            Loaded="Window_Loaded">
        <Grid>
            <DataGrid Name="dataGrid1" />
        </Grid>
    </Window>
    
  6. Windowiçin arka planda kod dosyasını (MainWindow.xaml.vb veya MainWindow.xaml.cs) açın.

  7. Birleştirilen tablolardan yalnızca belirli değerleri almak için aşağıdaki kodu ekleyin ve ItemsSourceDataGrid özelliğini sorgunun sonuçlarına ayarlayın.

    using System.Linq;
    using System.Windows;
    
    namespace DataGridSQLExample
    {
        /// <summary>
        /// Interaction logic for MainWindow.xaml
        /// </summary>
        public partial class MainWindow : Window
        {
            AdventureWorksLT2008Entities dataEntities = new AdventureWorksLT2008Entities();
    
            public MainWindow()
            {
                InitializeComponent();
            }
    
            private void Window_Loaded(object sender, RoutedEventArgs e)
            {
                var query =
                    from product in dataEntities.Products
                    where product.Color == "Red"
                    orderby product.ListPrice
                    select new { product.Name, product.Color, CategoryName = product.ProductCategory.Name, product.ListPrice };
    
                dataGrid1.ItemsSource = query.ToList();
            }
        }
    }
    
    Imports System.Linq
    
    Class MainWindow
        Dim dataEntities As AdventureWorksLT2008Entities = New AdventureWorksLT2008Entities
    
        Private Sub Window_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded
            Dim query = _
                From product In dataEntities.Products _
                Where product.Color = "Red" _
                Order By product.ListPrice _
                Select product.Name, product.Color, CategoryName = product.ProductCategory.Name, product.ListPrice
    
            dataGrid1.ItemsSource = query.ToList()
        End Sub
    End Class
    
  8. Örneği çalıştırın.

    DataGrid adlı verileri görüntüleyen bir nesne görmelisiniz.

    SQL veritabanıDataGrid_SQL_EF_Step7 verilerle DataGrid'i

Ayrıca bakınız