Demonstra Passo a passo: Exibir dados de um banco de dados de SQL Server em um controle DataGrid
Nesta explicação, você pode recuperar dados de um banco de dados de SQL Server e exibir os dados em um DataGrid de controle. Você usar o ADO.NET Entity Framework para criar classes de entidade que representam os dados e usam o LINQ para escrever uma consulta que recupera os dados especificados de uma classe de entidade.
Pré-requisitos
You need the following components to complete this walkthrough:
Visual Studio 2010.
Acesso a uma instância em execução de SQL Server ou SQL Server Express tem o banco de dados de exemplo AdventureWorksLT2008 anexado a ele. Você pode baixar o banco de dados de AdventureWorksLT2008 a site CodePlex da.
To create entity classes
Crie um novo projeto de aplicativo WPF em Visual Basic ou C# e denomine DataGridSQLExample.
No Solution Explorer, clique com o botão direito do projeto, aponte para Adde selecione Novo Item.
O Add New Item caixa de diálogo aparece.
No painel Installed Templates, selecione dados e na lista de modelos, selecione ADO.Modo de dados de entidade de NETl.
Nomeie o arquivo AdventureWorksModel.edmx e, em seguida, clique em Add.
O Assistente de modelo de dados de entidade aparece.
Na tela Escolher o conteúdo do modelo, selecione gerar do banco de dados e, em seguida, clique em próximo.
Na tela Choose Your Data Connection, fornecem a conexão ao banco de dados AdventureWorksLT2008. Para obter mais informações, consulte Escolha sua conexão caixa de diálogo dados.
Certifique-se de que o nome é AdventureWorksLT2008Entities e que o Salvar configurações de conexão de entidade em app. config, como caixa de seleção está selecionada e clique em próximo.
Na tela Escolha seus objetos de banco de dados, expanda o nó Tables e selecione o produto e ProductCategory tabelas.
Você pode gerar classes de entidade para todas as tabelas; No entanto, neste exemplo apenas recuperar dados dessas duas tabelas.
Click Finish.
As entidades de produto e ProductCategory são exibidas no Designer de entidade.
Para recuperar e apresentar os dados
Abra o arquivo de MainWindow. XAML.
No editor de XAML, adicione o seguinte DataGrid marca entre a <Grid> e </Grid> marcas para adicionar um DataGrid chamado dataGrid1.
<DataGrid Name="dataGrid1" />
Selecione o Window.
Usando a janela de propriedades ou o editor de XAML, crie um manipulador de eventos para o Window chamado Window_Loaded para o Loaded de evento. For more information, see How to: Create a Simple Event Handler.
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" com x:Class="MainWindow".
<Window x:Class="DataGridSQLExample.MainWindow" xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="450" Loaded="Window_Loaded"> <Grid> <DataGrid Name="dataGrid1" /> </Grid> </Window>
Abrir o arquivo code-behind (MainWindow.xaml.vb ou MainWindow.xaml.cs) para o Window.
Adicione o seguinte código para recuperar somente os valores específicos de tabelas associadas e definir o ItemsSource propriedade da DataGrid os resultados da consulta.
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
using System.Data.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) { ObjectQuery<Product> products = dataEntities.Products; var query = from product in products where product.Color == "Red" orderby product.ListPrice select new { product.Name, product.Color, CategoryName = product.ProductCategory.Name, product.ListPrice }; dataGrid1.ItemsSource = query.ToList(); } } }
Execute o exemplo.
Você deve ver um DataGrid que exibe dados.
Consulte também
Referência
Outros recursos
Como faço Começar com o Entity Framework em aplicativos WPF?