Adım adım kılavuz: 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 denetimde DataGrid görüntülersiniz. Verileri temsil eden ADO.NET Entity Framework sınıflarını oluşturmak için ADO.NET Entity Framework ve bir varlık sınıfından belirtilen verileri alan bir sorgu yazmak için LINQ kullanırsınız.

Önkoşullar

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

  • Visual Studio.

  • AdventureWorks örnek veritabanının SQL Server veya SQL Server Express örnek veritabanına erişim. AdventureWorks veritabanını GitHub.

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

  1. Visual Basic veya C# ile yeni bir WPF Uygulaması projesi oluşturun ve olarak ad DataGridSQLExample girin.

  2. Bu Çözüm Gezgini projenize sağ tıklayın, Ekle'nin üzerine gelin ve Yeni Öğe'yi seçin.

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

  3. Yüklü Şablonlar bölmesinde Veri'yi seçin ve şablon listesinden ADO.NET Varlık Veri Modeli.

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

  4. Dosyaya bir ad ve AdventureWorksModel.edmx ardından Ekle'ye tıklayın.

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

  5. Model İçeriği Seç ekranında veritabanından EF Designer'ı seçin ve ardından Sonraki'ye tıklayın.

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

    Adın olduğundan ve Varlık bağlantısını farklı kaydet App.Config onay kutusunun seçili olduğundan emin olun ve ardından AdventureWorksLT2008Entities Sonraki 'ye tıklayın.

  7. Veritabanı Nesnelerinizi Seçin ekranında Tablolar düğümünü genişletin ve Product ve 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ırsiniz.

    Tablolardan Product ve ProductCategory seçme

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

    Product ve ProductCategory varlıkları, Entity Desisgner.

    Ürün ve ProductCategory varlık modelleri

Verileri alma ve sun

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

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

  3. XAML düzenleyicisinde, adlı bir DataGrid eklemek için ve etiketleri arasına aşağıdaki etiketi <Grid> </Grid> DataGrid dataGrid1 ekleyin.

    <DataGrid Name="dataGrid1" />
    

    DataGrid ile pencere

  4. Window seçeneğini belirleyin.

  5. Özellikler penceresi veya XAML düzenleyicisini kullanarak, olay için adlı bir Window Window_Loaded olay işleyicisi Loaded oluşturun. Daha fazla bilgi için, bkz. How to: Create a Simple Event Handler.

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

    Not

    Visual Basic kullanıyorsanız MainWindow.xaml'in ilk satırına x:Class="DataGridSQLExample.MainWindow" ifadesini ile x:Class="MainWindow" değiştirin.

    <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. için arka kapı kod dosyasını (MainWindow.xaml.vb veya MainWindow.xaml.cs) Window açın.

  7. Bir araya gelen tablolardan yalnızca belirli değerleri almak ve özelliğini sorgunun ItemsSource DataGrid sonuçlarına ayarlamak için aşağıdaki kodu ekleyin.

    using System.Data.Entity.Core.Objects;
    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.Data.Objects
    
    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 products As ObjectQuery(Of Product) = dataEntities.Products
    
            Dim query = _
                From product In 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.

    Verileri görüntüleyen bir DataGrid görüyor gerekir.

    SQL veritabanından verilerle DataGrid

Ayrıca bkz.