Demonstra Passo a passo: Exibir dados de um banco de dados do SQL Server em um controle DataGrid
Nesta explicação passo a passo, você recupera dados de um banco de dados do SQL Server e exibe esses dados em um DataGrid controle. O ADO.NET Entity Framework é usado para criar as classes de entidade que representam os dados e o LINQ é usado para gravar uma consulta que recupera os dados especificados de uma classe de entidade.
Pré-requisitos
Você precisará dos seguintes componentes para concluir este passo a passo:
Do Visual Studio.
Acesso a uma instância em execução do SQL Server ou do 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 do WPF no Visual Basic ou no C#, chamado
DataGridSQLExample
.No Gerenciador de Soluções, clique com o botão direito do mouse no projeto, aponte para Adicionar e selecione Novo Item.
A caixa de diálogo Adicionar Novo Item aparecerá.
No painel Modelos Instalados, selecione Dados e na lista de modelos, selecione Modelo de Dados de Entidade ADO.NET.
Nomeie o arquivo
AdventureWorksModel.edmx
e, em seguida, clique em Adicionar.O Assistente do Modelo de Dados de Entidade é aberto.
Na tela Escolher Conteúdo do Modelo, selecione EF Designer no banco de dados e clique em Avançar.
Na tela Escolher a Conexão de Dados, forneça a conexão ao banco de dados AdventureWorksLT2008. Para obter mais informações, consulte Escolher uma Caixa de Diálogo de Conexão de Dados.
Verifique se o nome é
AdventureWorksLT2008Entities
e 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.Na tela Escolher Objetos de Banco de Dados, expanda o nó Tabelas e selecione as tabelas Product e ProductCategory.
É possível gerar classes de entidade para todas as tabelas; no entanto, neste exemplo, somente os dados dessas duas tabelas serão recuperados.
Clique em Concluir.
As entidades Product e ProductCategory serão exibidas no Entity Designer.
Recuperar e apresentar os dados
Abra o arquivo MainWindow.xaml.
No editor XAML, adicione a seguinte DataGrid marca entre as
<Grid>
marcas e</Grid>
para adicionar um DataGrid nomedataGrid1
.<DataGrid Name="dataGrid1" />
Selecione o Window.
Usando a janela Propriedades ou o editor XAML, crie um manipulador de eventos para o nome
Window_Loaded
do WindowLoaded evento. Para obter mais informações, consulte Instruções: como criar um manipulador de eventos simples.O exemplo a seguir mostra o XAML de 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 code-behind (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 ItemsSource propriedade do DataGrid para os resultados da consulta.
using System.Data.Entity.Core.Objects; 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.Data.Objects 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 products As ObjectQuery(Of Product) = dataEntities.Products Dim query = _ From product In 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
Execute o exemplo.
Você deve ver um DataGrid que exibe dados.
Confira também
.NET Desktop feedback
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de