Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In deze handleiding haalt u gegevens op uit een SQL Server-database en geeft u die gegevens weer in een DataGrid-controle-element. U gebruikt het ADO.NET Entity Framework om de entiteitsklassen te maken die de gegevens vertegenwoordigen en linq te gebruiken om een query te schrijven waarmee de opgegeven gegevens uit een entiteitsklasse worden opgehaald.
Vereiste voorwaarden
U hebt de volgende onderdelen nodig om dit scenario te voltooien:
Visual Studio.
Toegang tot een actief exemplaar van SQL Server of SQL Server Express waaraan de AdventureWorks-voorbeelddatabase is gekoppeld. U kunt de AdventureWorks-database downloaden van de GitHub.
Entiteitsklassen maken
Maak een nieuw WPF-toepassingsproject in Visual Basic of C# en noem het
DataGridSQLExample.Klik in Solution Explorer met de rechtermuisknop op uw project, wijs Toevoegenaan en selecteer Nieuw item.
Het dialoogvenster Nieuw item toevoegen wordt weergegeven.
In het deelvenster Geïnstalleerde sjablonen, kies Gegevens en in de lijst met sjablonen selecteer je ADO.NET Entity Data Model.
Geef het bestand een naam
AdventureWorksModel.edmxen klik vervolgens op Toevoegen.De Entiteitsgegevensmodelwizard verschijnt.
Selecteer in het scherm Modelinhoud kiezen EF Designer in database en klik vervolgens op Volgende.
Geef op het scherm 'Gegevensverbinding kiezen' de verbinding met uw AdventureWorksLT2008-database op. Voor meer informatie, zie Dialoogvenster Uw gegevensverbinding kiezen.
Zorg ervoor dat de naam
AdventureWorksLT2008Entitiesis en dat het selectievakje Entiteitsverbindingsinstellingen opslaan in App.Config als is geselecteerd, en klik vervolgens op Volgende.Vouw in het scherm Databaseobjecten kiezen het knooppunt Tabellen uit en selecteer de tabellen Product en ProductCategory.
U kunt entiteitsklassen genereren voor alle tabellen; In dit voorbeeld haalt u echter alleen gegevens op uit deze twee tabellen.
Klik op Voltooien.
De entiteiten Product en ProductCategory worden weergegeven in entity designer.
De gegevens ophalen en presenteren
Open het bestand MainWindow.xaml.
Voeg in de XAML-editor de volgende DataGrid tag toe tussen de
<Grid>en</Grid>tags om een DataGrid met de naamdataGrid1toe te voegen.<DataGrid Name="dataGrid1" />
Kies Window.
Gebruik het venster Eigenschappen of de XAML-editor om een eventhandler voor de Window genaamd
Window_Loadedvoor het Loaded gebeurtenis te maken. Zie Procedure: Een eenvoudige gebeurtenis-handler makenvoor meer informatie.Hieronder ziet u de XAML voor MainWindow.xaml.
Opmerking
Als u Visual Basic gebruikt, vervangt u in de eerste regel van MainWindow.xaml
x:Class="DataGridSQLExample.MainWindow"doorx: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>Open het code-behind-bestand (MainWindow.xaml.vb of MainWindow.xaml.cs) voor de Window.
Voeg de volgende code toe om alleen specifieke waarden op te halen uit de gekoppelde tabellen en stel de eigenschap ItemsSource van de DataGrid in op de resultaten van de query.
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 ClassVoer het voorbeeld uit.
U ziet nu een DataGrid waarin gegevens worden weergegeven.
Zie ook
.NET Desktop feedback