Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
In questa guida passo-passo, si recuperano dati da un database di SQL Server e si visualizzano in un controllo DataGrid. Usare il ADO.NET Entity Framework per creare le classi di entità che rappresentano i dati e usare LINQ per scrivere una query che recupera i dati specificati da una classe di entità.
Prerequisiti
Per completare questa procedura dettagliata sono necessari i componenti seguenti:
Visual Studio.
Accesso a un'istanza in esecuzione di SQL Server o SQL Server Express a cui è collegato il database di esempio AdventureWorks. È possibile scaricare il database AdventureWorks dal GitHub.
Creare classi di entità
Creare un nuovo progetto applicazione WPF in Visual Basic o C# e denominarlo
DataGridSQLExample.In Esplora soluzioni, fai clic con il pulsante destro del mouse sul tuo progetto, seleziona Aggiungie quindi Nuovo elemento.
Verrà visualizzata la finestra di dialogo Aggiungi nuovo elemento.
Nel riquadro Modelli installati selezionare Data e nell'elenco dei modelli selezionare ADO.NET Entity Data Model.
Assegnare al file il nome
AdventureWorksModel.edmxe quindi fare clic su Aggiungi.Viene visualizzata la Creazione guidata modello di dati di entità.
Nella schermata Choose Model Contents (Scegli il contenuto del modello), selezionare EF Designer dal database e quindi fare clic su Avanti.
Nella schermata Scegli connessione dati specificare la connessione al database AdventureWorksLT2008. Per ulteriori informazioni, vedere la finestra di dialogo Scegliere la connessione dati.
Assicurarsi che il nome sia
AdventureWorksLT2008Entitiese che sia selezionata la casella di controllo Salva le impostazioni di connessione dell'entità in App.Config come e quindi fare clic su Avanti.Nella schermata Scegli oggetti di database, espandere il nodo Tabelle e selezionare le tabelle Product e ProductCategory.
È possibile generare classi di entità per tutte le tabelle; Tuttavia, in questo esempio si recuperano solo i dati da queste due tabelle.
Fare clic su Fine.
Le entità Product e ProductCategory vengono visualizzate in Entity Designer.
Recuperare e presentare i dati
Aprire il file MainWindow.xaml.
Nell'editor XAML aggiungere il tag di DataGrid seguente tra i tag
<Grid>e</Grid>per aggiungere un DataGrid denominatodataGrid1.<DataGrid Name="dataGrid1" />finestra

Seleziona il Window.
Usando la finestra delle proprietà o l'editor XAML, creare un gestore di eventi per il Window denominato
Window_Loadedper l'evento Loaded. Per altre informazioni, vedere Procedura: Creare un gestore eventi semplice.Di seguito viene illustrato il codice XAML per MainWindow.xaml.
Annotazioni
Se si usa Visual Basic, nella prima riga di MainWindow.xaml sostituire
x:Class="DataGridSQLExample.MainWindow"conx: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>Apri il file code-behind (MainWindow.xaml.vb o MainWindow.xaml.cs) per il Window.
Aggiungere il codice seguente per recuperare solo i valori specifici dalle tabelle unite e impostare la proprietà ItemsSource del DataGrid sui risultati della 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 ClassEsegui l'esempio.
Dovreste vedere un DataGrid che visualizza i dati.
Vedere anche
.NET Desktop feedback