Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Nesta explicação passo a passo, você recupera dados de um banco de dados do SQL Server e exibe esses dados em um controle de DataGrid. Use o ADO.NET Entity Framework para criar as classes de entidade que representam os dados e use LINQ para escrever uma consulta que recupera os dados especificados de uma classe de entidade.
Pré-requisitos
Você precisa dos seguintes componentes para concluir este passo a passo:
Visual Studio.
Acesso a uma instância em execução do SQL Server ou SQL Server Express que tenha o banco de dados de exemplo AdventureWorks anexado a ele. Você pode baixar o banco de dados AdventureWorks do GitHub.
Criar classes de entidade
Crie um novo projeto de aplicativo WPF em Visual Basic ou C# e nomeie-o
DataGridSQLExample.No Gerenciador de Soluções, clique com o botão direito do mouse em seu projeto, aponte para Adicionare selecione Novo Item.
A caixa de diálogo Adicionar Novo Item é exibida.
No painel Modelos Instalados, selecione Dados e, na lista de modelos, selecione ADO.NET Modelo de Dados de Entidade.
Nomeie o arquivo
AdventureWorksModel.edmxe clique em Adicionar.O Assistente de Modelo de Dados de Entidade é exibido.
No ecrã Escolher Conteúdo do Modelo, selecione EF Designer da base de dados e clique em Avançar.
Na tela Escolha sua conexão de dados, forneça a conexão com seu banco de dados AdventureWorksLT2008. Para obter mais informações, consulte caixa de diálogo Escolha a Sua Ligação de Dados.
Verifique se o nome é
AdventureWorksLT2008Entitiese se a caixa de seleção Salvar configurações de conexão de entidade em App.Config como está marcada e clique em Avançar.No ecrã "Escolha os seus objetos de base de dados", expanda o nó "Tabelas" e selecione as tabelas Produto e Categoria de Produto.
Você pode gerar classes de entidade para todas as tabelas; no entanto, neste exemplo, você só recupera dados dessas duas tabelas.
Clique em Concluir.
As entidades Product e ProductCategory são exibidas no Entity Designer.
Recuperar e apresentar os dados
Abra o arquivo MainWindow.xaml.
No editor XAML, adicione a seguinte tag DataGrid entre as tags
<Grid>e</Grid>para adicionar um DataGrid chamadodataGrid1.<DataGrid Name="dataGrid1" />
Selecione a Window.
Usando a janela Propriedades ou o editor XAML, crie um manipulador de eventos para o Window chamado
Window_Loadedpara o evento Loaded. Para obter mais informações, consulte Como criar um manipulador de eventos simples.A seguir mostra o XAML para MainWindow.xaml.
Observação
Se você estiver usando o Visual Basic, na primeira linha de MainWindow.xaml, substitua
x:Class="DataGridSQLExample.MainWindow"porx: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>Abra o arquivo de código-fonte subjacente (MainWindow.xaml.vb ou MainWindow.xaml.cs) para o Window.
Adicione o código a seguir para recuperar apenas valores específicos das tabelas unidas e defina a propriedade ItemsSource do DataGrid para os resultados da consulta.
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 ClassExecute o exemplo.
Você verá um DataGrid que exibe dados.
Ver também
.NET Desktop feedback