Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto názorném postupu načtete data z databáze SQL Serveru a zobrazíte je v ovládacím prvku DataGrid. Použijete ADO.NET Entity Framework k vytvoření tříd entit, které představují data, a pomocí LINQ napsat dotaz, který načte zadaná data z třídy entity.
Požadavky
K dokončení tohoto návodu potřebujete následující komponenty:
Visual Studio.
Přístup ke spuštěné instanci SQL Serveru nebo SQL Serveru Express, která má připojenou ukázkovou databázi AdventureWorks. Databázi AdventureWorks si můžete stáhnout z
GitHubu .
Vytvoření tříd entit
Vytvořte nový projekt aplikace WPF v jazyce Visual Basic nebo C# a pojmenujte ho
DataGridSQLExample.V Průzkumníku řešení klikněte pravým tlačítkem na váš projekt, přejeďte na Přidata vyberte Novou položku.
Zobrazí se dialogové okno Přidat novou položku.
V podokně Nainstalované šablony vyberte Data a v seznamu šablon vyberte ADO.NET Entity Data Model.
Pojmenujte soubor
AdventureWorksModel.edmxa klepněte na tlačítko Přidat.Zobrazí se Průvodce datovým modelem entity.
Na obrazovce Zvolit obsah modelu vyberte EF Designer z databáze a potom klikněte na Další.
Na obrazovce Zvolit datové připojení zadejte připojení k databázi AdventureWorksLT2008. Další informace naleznete v tématu Dialogové okno pro výběr datového připojení.
Ujistěte se, že je název nastaven na
AdventureWorksLT2008Entitiesa že je zaškrtnuto políčko s názvem Uložit nastavení připojení entity v App.Config jako, a potom klikněte na Další.Na obrazovce Zvolit databázové objekty rozbalte uzel Tabulky a vyberte tabulky Product a ProductCategory.
Třídy entit můžete generovat pro všechny tabulky; V tomto příkladu však načtete pouze data z těchto dvou tabulek.
Klikněte na Finish (Dokončit).
Produkt a kategorie produktů jsou zobrazeny v návrháři entit.
modely entit

Načtení a prezentace dat
Otevřete soubor MainWindow.xaml.
V editoru XAML přidejte mezi značky DataGrid a
<Grid>následující značku</Grid>a přidejte DataGrid pojmenovanoudataGrid1.<DataGrid Name="dataGrid1" />Okno

Vyberte Window.
Pomocí okna Vlastnosti nebo editoru XAML vytvořte obslužnou rutinu události pro Window pojmenovanou
Window_Loadedpro událost Loaded. Další informace naleznete v tématu Jak na to: Vytvoření jednoduché obslužné rutiny události.Následující příklad ukazuje XAML pro MainWindow.xaml.
Poznámka:
Pokud používáte Visual Basic, v prvním řádku MainWindow.xaml nahraďte
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>Otevřete soubor s vloženým kódem (MainWindow.xaml.vb nebo MainWindow.xaml.cs) pro Window.
Přidejte následující kód pro načtení pouze konkrétních hodnot ze spojených tabulek a nastavte vlastnost ItemsSource objektu DataGrid podle výsledků dotazu.
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 ClassSpusťte příklad.
Měla by se zobrazit DataGrid, která zobrazuje data.
Viz také
.NET Desktop feedback