Show / Hide Table of Contents

Пошаговое руководство. Отображение данных из базы данных SQL Server в элементе управления DataGrid

В этом пошаговом руководстве, получения данных из базы данных SQL Server и отображение их в DataGrid элемента управления. Использовать ADO.NET Entity Framework для создания классов сущностей, которые представляют данные и использовать LINQ для записи запроса, который получает указанные данные из класса сущностей.

Предварительные требования

Ниже приведены компоненты, необходимые для выполнения данного пошагового руководства.

  • Visual Studio.

  • Доступ к запущенному экземпляру SQL Server или SQL Server Express с образца базы данных AdventureWorks, подключенные к ней. Можно загрузить из базы данных AdventureWorks GitHub.

Создайте классы сущностей

  1. Создайте новый проект приложения WPF в Visual Basic или C# и назовите его DataGridSQLExample.

  2. В обозревателе решений щелкните правой кнопкой мыши проект, выберите пункт добавить, а затем выберите новый элемент.

    Будет открыто диалоговое окно Добавление нового элемента.

  3. На панели "Установленные шаблоны", выберите данных и в списке шаблонов выберите ADO.NET Entity Data Model.

    Шаблон элемента модели EDM ADO.NET

  4. Назовите файл AdventureWorksModel.edmx и нажмите кнопку добавить.

    Появится мастер модели EDM.

  5. На экране «Выбор содержимого модели» выберите конструктор EF из базы данных и нажмите кнопку Далее.

  6. На экране «Выбор подключения к данным» обеспечивают подключение к базе данных AdventureWorksLT2008. Дополнительные сведения см. в разделе выберите Your данных диалогового окна соединения.

    Убедитесь, что имя указано AdventureWorksLT2008Entities и что сохранить настройки подключения сущности в App.Config как флажок выбран и нажмите кнопку Далее.

  7. На экране «Выбор объектов базы данных» разверните узел таблицы и выберите продукта и ProductCategory таблиц.

    Можно создавать классы сущностей для всех таблиц; Тем не менее в этом примере извлекаются данные только из этих двух таблиц.

    Выбор пунктов Product и ProductCategory из таблиц

  8. Нажмите кнопку Готово.

    Сущности Product и ProductCategory, отображаются в конструкторе сущностей.

    Модели сущностей Product и ProductCategory

Извлечение и представление данных

  1. Откройте файл MainWindow.xaml.

  2. Задайте Width свойство Window для 450.

  3. В редакторе XAML добавьте следующий DataGrid тег между <Grid> и </Grid> теги для добавления DataGrid с именем dataGrid1.

    <DataGrid Name="dataGrid1" />
    

    Окно с DataGrid

  4. Выберите Window.

  5. С помощью окна свойств или редактор XAML, создайте обработчик событий для Window с именем Window_Loaded для Loaded событий. Дополнительные сведения см. в разделе Как Создание простого обработчика событий.

    Ниже показан XAML для MainWindow.xaml.

    Note

    Если вы используете Visual Basic, в первой строке файла MainWindow.XAML, замените x:Class="DataGridSQLExample.MainWindow" с x:Class="MainWindow".

    <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. Откройте файл с выделенным кодом (MainWindow.xaml.vb или MainWindow.xaml.cs) для Window.

  7. Добавьте следующий код, чтобы получить только определенные значения из соединяемых таблиц и задать ItemsSource свойство DataGrid к результатам запроса.

    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();
            }
        }
    }
    
  8. Запустите пример.

    Вы должны увидеть DataGrid , отображающий данные.

    DataGrid с данными из базы данных SQL

См. также

  • DataGrid
  • Инструкции: Начало работы с Entity Framework в приложениях WPF?
Back to top Неофициальная документация по .NET на русском языке. Лицензия: CC-BY 4.0. Основано на документации по .NET с Microsoft Docs
Generated by DocFX