Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ebben az útmutatóban adatokat kér le egy SQL Server-adatbázisból, és megjeleníti az adatokat egy DataGrid vezérlőelemben. A ADO.NET Entity Framework használatával hozza létre az adatokat képviselő entitásosztályokat, és a LINQ használatával írjon egy lekérdezést, amely lekéri a megadott adatokat egy entitásosztályból.
Előfeltételek
Az útmutató elvégzéséhez a következő összetevőkre van szüksége:
Visual Studio.
Hozzáférés az SQL Server vagy az SQL Server Express futó példányához, amelyhez csatolva van az AdventureWorks mintaadatbázis. A GitHub letöltheti az AdventureWorks-adatbázist.
Entitásosztályok létrehozása
Hozzon létre egy új WPF-alkalmazásprojektet a Visual Basicben vagy a C#-ban, és nevezze el
DataGridSQLExample.A Megoldáskezelőben kattintson a jobb gombbal a projektre, mutasson a hozzáadása pontra, majd válassza Új elemlehetőséget.
Megjelenik az Új elem hozzáadása párbeszédpanel.
A Telepített sablonok panelen válassza az Adat lehetőséget, majd a sablonok listájában válassza az ADO.NET Entitás adatmodelllehetőséget.
Nevezze el a fájlt
AdventureWorksModel.edmx, majd kattintson hozzáadása parancsra.Megjelenik az Entitásadatmodell varázsló.
A Modelltartalom kiválasztása képernyőn válassza a EF Designert az adatbázis-ből, majd kattintson a Továbbgombra.
Az Adatkapcsolat kiválasztása képernyőn adja meg az AdventureWorksLT2008-adatbázishoz való kapcsolatot. További információért lásd: Adatkapcsolat kiválasztása párbeszédpanel.
Ellenőrizze, hogy a név
AdventureWorksLT2008Entities, és hogy az App.Config-ban lévő entitáskapcsolati beállítások mentésére szolgáló jelölőnégyzet be van jelölve, majd kattintson a Továbbgombra.Az Adatbázis-objektumok kiválasztása képernyőn bontsa ki a Táblák csomópontot, és válassza ki a Termék és ProductCategory táblákat.
Az összes táblához létrehozhat entitásosztályokat; ebben a példában azonban csak ebből a két táblából kér le adatokat.
Kattintson a Finish (Befejezés) gombra.
A Product és ProductCategory entitások megjelennek az Entitástervezőben.
Az adatok lekérése és bemutatása
Nyissa meg a MainWindow.xaml fájlt.
Az XAML-szerkesztőben adja hozzá a következő DataGrid címkét a
<Grid>és</Grid>címkék közé, hogy hozzáadjon egy DataGridnevűdataGrid1.<DataGrid Name="dataGrid1" />
Válassza ki a Window.
A Tulajdonságok ablak vagy az XAML-szerkesztő használatával hozzon létre egy Window nevű
Window_Loaded-hez tartozó eseménykezelőt a Loaded eseményhez. További információ: Egyszerű eseménykezelőlétrehozása.Az alábbiakban a MainWindow.xaml XAML-jének bemutatása látható.
Megjegyzés:
Ha Visual Basicet használ, a MainWindow.xaml első sorában cserélje le a
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>Nyissa meg a kód mögötti fájlt (Window), például a MainWindow.xaml.vb vagy MainWindow.xaml.cs.
Adja hozzá a következő kódot, hogy csak bizonyos értékeket kérjen le az összekapcsolt táblákból, és állítsa be a ItemsSourceDataGrid tulajdonságát a lekérdezés eredményeire.
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 ClassFuttasd a példát.
Látnia kell egy adatokat megjelenítő DataGrid-t.
Lásd még
.NET Desktop feedback