Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här genomgången hämtar du data från en SQL Server-databas och visar dessa data i en DataGrid kontroll. Du använder ADO.NET Entity Framework för att skapa entitetsklasserna som representerar data och använda LINQ för att skriva en fråga som hämtar angivna data från en entitetsklass.
Förutsättningar
Du behöver följande komponenter för att slutföra den här genomgången:
Visual Studio.
Åtkomst till en instans av SQL Server eller SQL Server Express som har AdventureWorks-exempeldatabasen kopplad till sig. Du kan ladda ned AdventureWorks-databasen från GitHub-.
Skapa entitetsklasser
Skapa ett nytt WPF-programprojekt i Visual Basic eller C# och ge det namnet
DataGridSQLExample.Högerklicka på projektet i Solution Explorer, peka på Lägg tilloch välj sedan Nytt objekt.
Dialogrutan Lägg till nytt objekt visas.
I fönstret Installerade mallar väljer du Data och i listan med mallar väljer du ADO.NET Entitetsdatamodell.
Ge filen namnet
AdventureWorksModel.edmxoch klicka sedan på Lägg till.Guiden för Entitetsdatamodellen visas.
På skärmen Välj modellinnehåll väljer du EF Designer från databas och klickar sedan på Nästa.
På skärmen Välj dataanslutning anger du anslutningen till databasen AdventureWorksLT2008. Mer information finns i dialogrutan Välj dataanslutning.
Kontrollera att namnet är
AdventureWorksLT2008Entitiesoch att kryssrutan Spara entitetsanslutning i App.Config som är markerad och klicka sedan på Nästa.På skärmen Välj databasobjekt expanderar du noden Tabeller och väljer tabellerna Product och ProductCategory.
Du kan generera entitetsklasser för alla tabeller. Men i det här exemplet hämtar du bara data från dessa två tabeller.
Klicka på Finish.
Entiteterna Product och ProductCategory visas i Entitetsdesignern.
Hämta och presentera data
Öppna filen MainWindow.xaml.
I XAML-redigeraren lägger du till följande DataGrid-tagg mellan taggarna
<Grid>och</Grid>för att lägga till en DataGrid med namnetdataGrid1.<DataGrid Name="dataGrid1" />
Välj Window.
Använd fönstret Egenskaper eller XAML-redigeraren och skapa en händelsehanterare för Window med namnet
Window_Loadedför händelsen Loaded. För mer information, se Så här: skapa en enkel händelsehanterare.Följande visar XAML för MainWindow.xaml.
Anmärkning
Om du använder Visual Basic ersätter du
x:Class="DataGridSQLExample.MainWindow"medx:Class="MainWindow"på den första raden i MainWindow.xaml.<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>Öppna kodfilen (MainWindow.xaml.vb eller MainWindow.xaml.cs) för Window.
Lägg till följande kod för att hämta endast specifika värden från de anslutna tabellerna och ange egenskapen ItemsSource för DataGrid till resultatet av frågan.
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 ClassKör exemplet.
Du ska kunna se en DataGrid som visar data.
Se även
.NET Desktop feedback