Megosztás a következőn keresztül:


Útmutató: Adatok megjelenítése SQL Server-adatbázisból Egy DataGrid-vezérlőben

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

  1. Hozzon létre egy új WPF-alkalmazásprojektet a Visual Basicben vagy a C#-ban, és nevezze el DataGridSQLExample.

  2. 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.

  3. 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.

    ADO.NET entitásadatmodell-elemsablon

  4. Nevezze el a fájlt AdventureWorksModel.edmx, majd kattintson hozzáadása parancsra.

    Megjelenik az Entitásadatmodell varázsló.

  5. A Modelltartalom kiválasztása képernyőn válassza a EF Designert az adatbázis-ből, majd kattintson a Továbbgombra.

  6. 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.

  7. 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.

    Termék és Termékkategória kiválasztása táblákból

  8. Kattintson a Finish (Befejezés) gombra.

    A Product és ProductCategory entitások megjelennek az Entitástervezőben.

    Product és ProductCategory entitásmodellek

Az adatok lekérése és bemutatása

  1. Nyissa meg a MainWindow.xaml fájlt.

  2. Állítsa a Width tulajdonságát a Window-en 450-re.

  3. 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" />
    

    Adatgrides ablak

  4. Válassza ki a Window.

  5. 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>
    
  6. Nyissa meg a kód mögötti fájlt (Window), például a MainWindow.xaml.vb vagy MainWindow.xaml.cs.

  7. 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 Class
    
  8. Futtasd a példát.

    Látnia kell egy adatokat megjelenítő DataGrid-t.

    DataGrid SQL adatbázisból származó adatokkal

Lásd még