Visualstudio Data Tools vs 2022
Visualstudio Data Tools vs 2022
Visualstudio Data Tools vs 2022
No Visual Studio, você pode criar aplicativos que se conectam a dados em praticamente
qualquer produto ou serviço de banco de dados, em qualquer formato, em qualquer
lugar, em um computador local, em uma rede local ou em uma nuvem pública, privada
ou híbrida.
Para aplicativos em JavaScript, Python, PHP, Ruby ou C++, você se conecta a dados
como se fizesse qualquer outra coisa, obtendo bibliotecas e escrevendo código. Para
aplicativos .NET, o Visual Studio fornece ferramentas que você pode usar para explorar
fontes de dados, criar modelos de objeto para armazenar e manipular dados na
memória e associar dados à interface do usuário. O Microsoft Azure fornece SDKs para
.NET, Java, Node.js, PHP, Python, Ruby e aplicativos móveis e ferramentas no Visual
Studio para se conectar ao Armazenamento do Azure.
Para cenários do SQL Server, há suporte por meio dos Serviços Conectados:
SQL Server local. Nesse cenário, você instala o SQL Server em algum lugar da rede
local e se conecta a ele.
SQL Server em seu computador local. Nesse cenário, você instala o SQL Server em
seu computador local e se conecta a ele.
SQL Server Express LocalDB. Você não instala nada além do Visual Studio; você
simplesmente se conecta a ele.
SQL Server Express LocalDB no Contêiner. LocalDB como na opção anterior, mas
dentro de um contêiner local.
Banco de Dados SQL do Azure. Conecte-se ao serviço em execução ao vivo no
Azure.
A maioria dos outros produtos de banco de dados SQL e NoSQL listados aqui pode ser
hospedada em um computador local, em uma rede local ou no Microsoft Azure em uma
máquina virtual. Se você hospedar o banco de dados em uma máquina virtual do
Microsoft Azure, será responsável pelo gerenciamento do próprio banco de dados.
Microsoft Azure
SQL
Firebird
MariaDB
MySQL
Oráculo
E mais...
NoSQL
Apache Cassandra
CouchDB
MongoDB
NDatabase
OrientDB|
RavenDB
VelocityDB
E mais...
7 Observação
O suporte estendido para o SQL Server 2005 terminou em 12 de abril de 2016. Não
há garantia de que as ferramentas de dados no Visual Studio 2015 e posterior
continuarão a funcionar com o SQL Server 2005.
Idiomas do .NET
A tecnologia de acesso a dados descrita na documentação do Visual Studio usa
ADO.NET. ADO.NET é uma estrutura de acesso a dados herdada e não é recomendada
para aplicativos de dados modernos. Recomendamos direcionar o .NET Core ou o .NET
5 e versões posteriores e usar Entity Framework Core para desenvolvimento de acesso a
dados.
ADO.NET é um conjunto de classes que define uma interface para acessar qualquer tipo
de fonte de dados, relacional e não relacional. O Visual Studio tem várias ferramentas e
designers que trabalham com ADO.NET para ajudá-lo a se conectar a bancos de dados,
manipular os dados e apresentar os dados ao usuário. A documentação nesta seção
descreve como usar essas ferramentas. Você também pode programar diretamente com
os objetos de comando ADO.NET. Para obter mais informações sobre como chamar as
APIs de ADO.NET diretamente, consulte ADO.NET.
Se você estiver se conectando aos serviços do Azure, baixe as ferramentas mais recentes
do SDK do Azure .
Provedores de dados
Para que um banco de dados seja consumível em ADO.NET, ele deve ter um provedor
de dados ADO.NET personalizado ou então deve expor uma interface ODBC ou OLE DB.
A Microsoft fornece uma lista de provedores de dados ADO.NET para produtos do SQL
Server, bem como provedores ODBC e OLE DB.
7 Observação
Se você estiver usando o Visual Studio para se conectar a bancos de dados usando
provedores de dados OLEDB ou ODBC, precisará estar ciente de que as versões do
Visual Studio antes do Visual Studio 2022 são todos processos de 32 bits. Isso
significa que algumas das ferramentas de dados no Visual Studio só poderão se
conectar a bancos de dados OLEDB ou ODBC usando provedores de dados de 32
bits. Isso inclui o provedor de dados OLEDB de 32 bits do Microsoft Access, bem
como outros provedores de 32 bits de terceiros.
Se você estiver usando o Visual Studio 2022 para se conectar a bancos de dados,
precisará estar ciente de que o Visual Studio 2022 é um processo de 64 bits. Isso
significa que algumas das ferramentas de dados no Visual Studio não poderão se
conectar a bancos de dados OLEDB ou ODBC usando provedores de dados de 32
bits.
Modelagem de dados
No .NET, você tem três opções para modelar e manipular dados na memória depois de
recuperá-los de uma fonte de dados:
Entity Framework: a tecnologia orm da Microsoft preferida. Você pode usá-lo para
programar em relação a dados relacionais como objetos .NET de primeira classe.
Para novos aplicativos, deve ser a primeira opção padrão quando um modelo é
necessário. Ele requer suporte personalizado do provedor de ADO.NET subjacente.
conjuntos de dados: o mais antigo das três tecnologias de modelagem. Ele foi
projetado principalmente para o desenvolvimento rápido de aplicativos
"formulários sobre dados", nos quais você não está processando grandes
quantidades de dados ou executando consultas ou transformações complexas. Um
objeto DataSet consiste em objetos DataTable e DataRow que logicamente se
assemelham a objetos do Banco de Dados SQL muito mais do que objetos .NET.
Para aplicativos relativamente simples com base em fontes de dados SQL, os
conjuntos de dados ainda podem ser uma boa opção.
Não há nenhum requisito para usar nenhuma dessas tecnologias. Em alguns cenários,
especialmente quando o desempenho é crítico, você pode simplesmente usar um
objeto DataReader para ler do banco de dados e copiar os valores necessários em um
objeto de coleção, como List<T>.
C++ nativo
Os aplicativos C++ que se conectam ao SQL Server devem usar o Microsoft® ODBC
Driver 13.1 para SQL Server na maioria dos casos. Se os servidores estiverem
vinculados, o OLE DB será necessário e, para isso, você usará o do SQL Server Native
Client. Você pode acessar outros bancos de dados usando os drivers ODBC ou OLE DB
diretamente. O ODBC é a interface de banco de dados padrão atual, mas a maioria dos
sistemas de banco de dados fornece funcionalidade personalizada que não pode ser
acessada por meio da interface ODBC. O OLE DB é uma tecnologia herdada de acesso a
dados COM que ainda tem suporte, mas não é recomendada para novos aplicativos.
Para obter mais informações, consulte Data Access no Visual C++.
Os programas C++ que consomem serviços REST podem usar o SDK REST do C++ .
Modelagem de dados — o Visual Studio não fornece uma camada ORM para C++.
ODB é um ORM de software livre popular para C++.
Para saber mais sobre como se conectar a bancos de dados de aplicativos em C++,
consulte ferramentas de dados do Visual Studio para C++.
JavaScript
JavaScript no Visual Studio é uma linguagem de primeira classe para a criação de
aplicativos multiplataforma, aplicativos UWP, serviços de nuvem, sites e aplicativos Web.
Você pode usar Bower, Grunt, Gulp, npm e NuGet de dentro do Visual Studio para
instalar suas bibliotecas JavaScript e produtos de banco de dados favoritos. Conecte-se
ao Armazenamento do Microsoft Azure e aos serviços baixando SDKs do site do
Azure . Edge.js é uma biblioteca que conecta o JavaScript do lado do servidor
(Node.js) a fontes de dados ADO.NET.
Python
Instale o suporte do Python no Visual Studio para criar aplicativos Python. A
documentação do Azure tem vários tutoriais sobre como se conectar aos dados,
incluindo o seguinte:
Conteúdo relacionado
o Microsoft Azure Storage— descreve o Armazenamento do Azure e como criar
aplicativos usando blobs, tabelas, filas e arquivos do Azure.
Banco de Dados SQL do Azure— Descreve como conectar-se ao Banco de Dados SQL
do Azure, um banco de dados relacional como serviço.
ADO.NET Entity Framework— descreve como criar aplicativos de dados que permitem
que os desenvolvedores programem em relação a um modelo conceitual, em vez de
diretamente em um banco de dados relacional.
WCF Data Services 4.5— descreve como usar os Serviços de Dados do WCF para
implantar serviços de dados na Web ou em uma intranet que implemente o OData
(Open Data Protocol) .
Dados em Soluções do Office – contém links para tópicos que explicam como os dados
funcionam nas soluções do Office. Isso inclui informações sobre programação orientada
a esquema, cache de dados e acesso a dados do lado do servidor.
Ferramentas XML no Visual Studio – discute o trabalho com dados XML, a depuração de
XSLT, os recursos do XML do .NET e a arquitetura da consulta XML.
Comentários
Esta página foi útil? Yes No
7 Observação
Ao criar um aplicativo que manipula dados em um banco de dados, você executa tarefas
básicas, como definir cadeias de conexão, inserir dados e executar procedimentos
armazenados. Seguindo este tópico, você pode descobrir como interagir com um banco
de dados de dentro de um aplicativo simples Windows Forms "formulários sobre dados"
usando Visual C# ou Visual Basic e ADO.NET. Todas as tecnologias de dados do .NET,
incluindo conjuntos de dados, LINQ to SQL e Entity Framework, executam etapas muito
semelhantes às mostradas neste artigo.
Este artigo demonstra uma maneira simples de rapidamente obter dados de um banco
de dados. Se seu aplicativo precisar modificar os dados de maneiras não triviais e
atualizar o banco de dados, considere usar o Entity Framework e usar a associação de
dados para sincronizar automaticamente os controles de interface do usuário com as
alterações nos dados subjacentes.
) Importante
Para manter o código simples, ele não inclui o tratamento de exceção pronto para
produção.
7 Observação
O código completo deste tutorial pode ser acessado no repositório GitHub de
documentos do Visual Studio em C# e Visual Basic .
Pré-requisitos
Para criar o aplicativo, você precisará de:
LocalDB do SQL Server Express. Se você não tiver SQL Server Express LocalDB,
poderá instalá-lo na página de download do SQL Server .
Este tópico pressupõe que você esteja familiarizado com a funcionalidade básica do IDE
do Visual Studio e possa criar um aplicativo Windows Forms, adicionar formulários ao
projeto, colocar botões e outros controles nos formulários, definir propriedades dos
controles e codificar eventos simples. Se você não estiver confortável com essas tarefas,
sugerimos que conclua o tutorial Criar um aplicativo Windows Forms no Visual Studio
com o Visual Basic ou o tutorial Criar um aplicativo Windows Forms no Visual Studio
com C# antes de iniciar este passo a passo.
4. Na caixa de texto Novo nome do banco de dados, insira Vendas e escolha OK.
2. Adicione dois formulários do Windows ao seu projeto para que ele tenha três
formulários e dê a eles os seguintes nomes:
Navegação
NewCustomer
FillOrCancel
3. Para cada formulário, adicione as caixas de texto, botões e outros controles que
aparecem nas ilustrações a seguir. Para cada controle, defina as propriedades que
as tabelas descrevem.
7 Observação
Formulário Navegação
ノ Expandir a tabela
Formulário NewCustomer
ノ Expandir a tabela
ReadOnly = True
NumericUpdown DecimalPlaces = 0
Máximo = 5.000
Nome = numOrderAmount
Nome = dtpOrderDate
Formulário FillOrCancel
ノ Expandir a tabela
Nome = dtpFillDate
ReadOnly = True
RowHeadersVisible = False
Você pode encontrar a cadeia de conexão clicando com o botão direito do mouse na
conexão de dados de Vendas no Gerenciador de Servidores e escolhendo
Propriedades. Localize a propriedade ConnectionString e use Ctrl+A, Ctrl+C para
selecionar e copiar a cadeia de caracteres para a área de transferência.
U Cuidado
Formulário Navegação
O formulário Navegação é aberto quando você executa o aplicativo. O botão Adicionar
uma conta abre o formulário NewCustomer. O botão Preencher ou cancelar pedidos
abre o formulário FillOrCancel. O botão Sair fecha o aplicativo.
Clique duas vezes nos três botões no formulário Navegação para criar métodos vazios
do manipulador de eventos. Clicar duas vezes nos botões também adiciona o código
gerado automaticamente no arquivo de código do Designer que permite um clique de
botão para gerar um evento.
7 Observação
C#
/// <summary>
/// Opens the NewCustomer form as a dialog box,
/// which returns focus to the calling form when it is closed.
/// </summary>
private void btnGoToAdd_Click(object sender, EventArgs e)
{
Form frm = new NewCustomer();
frm.Show();
}
/// <summary>
/// Opens the FillorCancel form as a dialog box.
/// </summary>
private void btnGoToFillOrCancel_Click(object sender, EventArgs e)
{
Form frm = new FillOrCancel();
frm.ShowDialog();
}
/// <summary>
/// Closes the application (not just the Navigation form).
/// </summary>
private void btnExit_Click(object sender, EventArgs e)
{
this.Close();
}
7 Observação
O código deste tutorial está disponível em C# e Visual Basic. Para alternar o idioma
de código nesta página entre C# e Visual Basic, use o comutador de idioma de
código na parte superior de cada exemplo de código.
Formulário NewCustomer
Quando você insere um nome de cliente e seleciona o botão Criar Conta, o formulário
NewCustomer cria uma conta de cliente e o SQL Server retorna um valor IDENTITY
como a nova ID do cliente. Em seguida, você pode fazer um pedido para a nova conta
especificando um valor e uma data de pedido e selecionando o botão Fazer Pedido.
C#
using System.Data.SqlClient;
C#
/// <summary>
/// Verifies that a customer ID and order amount have been
provided.
/// </summary>
private bool IsOrderDataValid()
{
// Verify that CustomerID is present.
if (txtCustomerID.Text == "")
{
MessageBox.Show("Please create customer account before
placing order.");
return false;
}
// Verify that Amount isn't 0.
else if ((numOrderAmount.Value < 1))
{
MessageBox.Show("Please specify an order amount.");
return false;
}
else
{
// Order can be submitted.
return true;
}
}
/// <summary>
/// Clears the form data.
/// </summary>
private void ClearForm()
{
txtCustomerName.Clear();
txtCustomerID.Clear();
dtpOrderDate.Value = DateTime.Now;
numOrderAmount.Value = 0;
this.parsedCustomerID = 0;
}
3. Conclua os corpos do método para os quatro manipuladores de eventos de clique
com botão, conforme mostrado no código a seguir.
C#
/// <summary>
/// Creates a new customer by calling the Sales.uspNewCustomer
stored procedure.
/// </summary>
private void btnCreateAccount_Click(object sender, EventArgs e)
{
if (IsCustomerNameValid())
{
// Create the connection.
using (SqlConnection connection = new
SqlConnection(Properties.Settings.Default.connString))
{
// Create a SqlCommand, and identify it as a stored
procedure.
using (SqlCommand sqlCommand = new
SqlCommand("Sales.uspNewCustomer", connection))
{
sqlCommand.CommandType =
CommandType.StoredProcedure;
try
{
connection.Open();
/// <summary>
/// Calls the Sales.uspPlaceNewOrder stored procedure to place an
order.
/// </summary>
private void btnPlaceOrder_Click(object sender, EventArgs e)
{
// Ensure the required input is present.
if (IsOrderDataValid())
{
// Create the connection.
using (SqlConnection connection = new
SqlConnection(Properties.Settings.Default.connString))
{
// Create SqlCommand and identify it as a stored
procedure.
using (SqlCommand sqlCommand = new
SqlCommand("Sales.uspPlaceNewOrder", connection))
{
sqlCommand.CommandType =
CommandType.StoredProcedure;
try
{
//Open connection.
connection.Open();
/// <summary>
/// Clears the form data so another new account can be created.
/// </summary>
private void btnAddAnotherAccount_Click(object sender, EventArgs e)
{
this.ClearForm();
}
/// <summary>
/// Closes the form/dialog box.
/// </summary>
private void btnAddFinish_Click(object sender, EventArgs e)
{
this.Close();
}
Formulário FillOrCancel
O formulário FillOrCancel executa uma consulta para retornar um pedido quando você
insere um ID do pedido e seleciona o botão Localizar Pedido. A linha retornada aparece
em uma grade de dados somente leitura. Você pode marcar o pedido como cancelado
(X) se selecionar o botão Cancelar Pedido ou marcar o pedido como preenchido (F) se
selecionar o botão Preencher Pedido. Se você selecionar o botão Localizar Pedido
novamente, a linha atualizada será exibida.
1. Traga os dois namespaces a seguir para o escopo para que você não precise
qualificar totalmente os nomes de seus membros.
C#
using System.Data.SqlClient;
using System.Text.RegularExpressions;
C#
C#
/// <summary>
/// Executes a t-SQL SELECT statement to obtain order data for a
specified
/// order ID, then displays it in the DataGridView on the form.
/// </summary>
private void btnFindByOrderID_Click(object sender, EventArgs e)
{
if (IsOrderIDValid())
{
using (SqlConnection connection = new
SqlConnection(Properties.Settings.Default.connString))
{
// Define a t-SQL query string that has a parameter for
orderID.
const string sql = "SELECT * FROM Sales.Orders WHERE
orderID = @orderID";
try
{
connection.Open();
/// <summary>
/// Cancels an order by calling the Sales.uspCancelOrder
/// stored procedure on the database.
/// </summary>
private void btnCancelOrder_Click(object sender, EventArgs e)
{
if (IsOrderIDValid())
{
// Create the connection.
using (SqlConnection connection = new
SqlConnection(Properties.Settings.Default.connString))
{
// Create the SqlCommand object and identify it as a
stored procedure.
using (SqlCommand sqlCommand = new
SqlCommand("Sales.uspCancelOrder", connection))
{
sqlCommand.CommandType =
CommandType.StoredProcedure;
try
{
// Open the connection.
connection.Open();
/// <summary>
/// Fills an order by calling the Sales.uspFillOrder stored
/// procedure on the database.
/// </summary>
private void btnFillOrder_Click(object sender, EventArgs e)
{
if (IsOrderIDValid())
{
// Create the connection.
using (SqlConnection connection = new
SqlConnection(Properties.Settings.Default.connString))
{
// Create command and identify it as a stored
procedure.
using (SqlCommand sqlCommand = new
SqlCommand("Sales.uspFillOrder", connection))
{
sqlCommand.CommandType =
CommandType.StoredProcedure;
try
{
connection.Open();
/// <summary>
/// Closes the form.
/// </summary>
private void btnFinishUpdates_Click(object sender, EventArgs e)
{
this.Close();
}
Conteúdo relacionado
Ferramentas de dados do Visual Studio para .NET
Comentários
Esta página foi útil? Yes No
Criar um aplicativo de dados simples
com o WPF e o Entity Framework 6
Artigo • 04/02/2025
2 Aviso
Se você estiver usando o Visual Studio 2022, deverá usar o Visual Studio 2022
versão 17.3 Versão prévia 3 ou posterior para este tutorial.
Este passo a passo mostra como criar um aplicativo básico de "formulários sobre dados"
no Visual Studio. O aplicativo usa o SQL Server LocalDB, o banco de dados Northwind, o
Entity Framework 6 (não o Entity Framework Core) e o Windows Presentation
Foundation para .NET Framework (não .NET Core ou .NET 5 ou posterior). Ele mostra
como fazer a vinculação de dados básica com uma exibição de detalhes principais e
também tem um Navegador de Associação personalizado com botões para Mover
próximo, Mover anterior, Mover para o início, Mover para o final, Atualizar e Excluir.
Este artigo se concentra no uso de ferramentas de dados no Visual Studio e não tenta
explicar detalhadamente as tecnologias subjacentes. Ele pressupõe que você tenha uma
familiaridade básica com XAML, Entity Framework e SQL. Este exemplo também não
demonstra a arquitetura MVVM (Model-View-ViewModel), que é padrão para
aplicativos WPF. No entanto, você pode copiar esse código para seu próprio aplicativo
MVVM com poucas modificações.
O código final deste tutorial pode ser encontrado no GitHub em Exemplos de Tutorial
do Visual Studio – EF6 .
1. Se você não tiver o SQL Server Express LocalDB, instale-o por meio do do
Instalador do Visual Studio. No Visual Studio Installer, você pode instalar o SQL
Server Express LocalDB como parte da carga de trabalho Armazenamento e
processamento de dados ou como um componente individual.
Configurar o projeto
1. No Visual Studio, crie um novo projeto de aplicativo WPF de C# (.NET Framework).
4. Agora você pode usar o Visual Studio para criar um modelo com base no banco de
dados Northwind.
Criar o modelo
1. No Gerenciador de Soluções, clique com o botão direito do mouse no nó do
projeto e escolha Adicionar>Novo Item. No painel esquerdo, no nó C#, escolha
Dados e, no painel central, escolha Modelo de Dados de Entidade ADO.NET.
Se você não vir uma conexão, escolha Nova Conexão, e na caixa de diálogo
Escolher Fonte de Dados, escolha Microsoft SQL Server, escolha Continuar e na
caixa de diálogo Propriedades de Conexão, insira (localdb)\MSSQLLocalDB e em
Selecionar ou insira um nome de banco de dados, escolha Northwind, então
pressione OK.
7. Os arquivos .tt são de uso geral e você precisa ajustar um deles para trabalhar
com a vinculação de dados do WPF, que requer ObservableCollections. Em
Gerenciador de Soluções, expanda o nó Northwind_model até encontrar
Northwind_model.tt. (Verifique se você não está no arquivo .Context.tt , que está
diretamente abaixo do arquivo .edmx .)
Agora você está pronto para conectar esse modelo à página XAML para que possa
exibir, navegar e modificar os dados.
Vincular dados do modelo à página XAML
É possível escrever seu próprio código de vinculação de dados, mas é muito mais fácil
permitir que o Visual Studio faça isso por você.
2. Expanda o nó do seu projeto e selecione Cliente. (As fontes para pedidos são
geradas automaticamente a partir da propriedade de Navegação de pedidos no
Cliente.)
3. Clique em Finalizar.
XAML
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
Na visualização XAML, agora você pode ver um novo elemento Grid na primeira
linha (a linha intermediária) da grade principal. A grade pai tem um atributo
DataContext que se refere a um CollectionViewSource que foi adicionado ao
XAML
6. Quando um cliente está visível na metade superior da janela, você deseja ver seus
pedidos na metade inferior. Você mostra os pedidos em um único controle de
exibição de grade. Para que a vinculação de dados de detalhes mestre funcione
conforme o esperado, é importante que você associe à propriedade Pedidos na
classe Clientes, não ao nó Pedidos separado. Arraste a propriedade Pedidos da
classe Clientes para a metade inferior do formulário, para que o designer a
coloque na linha 2:
7. O Visual Studio gerou todo o código de associação que conecta os controles de
interface do usuário a eventos no modelo. Tudo o que você precisa fazer, para ver
alguns dados, é escrever algum código para preencher o modelo. Primeiro,
navegue até MainWindow.xaml.cs e adicione um campo de dados à classe
MainWindow para o contexto de dados. Esse objeto, que foi gerado para você, age
como um controle que rastreia alterações e eventos no modelo. Você também
adicionará membros de dados CollectionViewSource para clientes e pedidos e a
lógica de inicialização do construtor associada ao construtor
MainWindow() existente. A parte superior da classe deve ter esta aparência:
C#
public MainWindow()
{
InitializeComponent();
custViewSource = ((CollectionViewSource)
(FindResource("customerViewSource")));
ordViewSource = ((CollectionViewSource)
(FindResource("customerOrdersViewSource")));
DataContext = this;
}
Se ainda não estiver lá, adicione uma diretiva using para System.Data.Entity para
colocar o método de extensão Load no escopo:
C#
using System.Data.Entity;
C#
8. Pressione F5. Você deve ver os detalhes do primeiro cliente que foi recuperado no
CollectionViewSource. Você também deve ver seus pedidos na grade de dados. A
formatação não é ótima, então vamos corrigir isso. Você também pode criar uma
maneira de exibir os outros registros e fazer operações básicas de criação, leitura,
atualização e exclusão (CRUD).
XAML
XAML
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid x:Name="existingCustomerGrid" Grid.Row="1"
HorizontalAlignment="Left" Margin="5" Visibility="Visible"
VerticalAlignment="Top" Background="AntiqueWhite" DataContext="
{StaticResource customerViewSource}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" MinWidth="233"/>
<ColumnDefinition Width="Auto" MinWidth="397"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Label Content="Customer ID:" Grid.Row="0" Style="{StaticResource
Label}"/>
<TextBox x:Name="customerIDTextBox" Grid.Row="0" Style="
{StaticResource CustTextBox}"
Text="{Binding CustomerID, Mode=TwoWay,
NotifyOnValidationError=true, ValidatesOnExceptions=true}"/>
<Label Content="Company Name:" Grid.Row="1" Style="{StaticResource
Label}"/>
<TextBox x:Name="companyNameTextBox" Grid.Row="1" Style="
{StaticResource CustTextBox}"
Text="{Binding CompanyName, Mode=TwoWay,
NotifyOnValidationError=true, ValidatesOnExceptions=true}"/>
<Label Content="Contact Name:" Grid.Row="2" Style="{StaticResource
Label}"/>
<TextBox x:Name="contactNameTextBox" Grid.Row="2" Style="
{StaticResource CustTextBox}"
Text="{Binding ContactName, Mode=TwoWay,
NotifyOnValidationError=true, ValidatesOnExceptions=true}"/>
<Label Content="Contact title:" Grid.Row="3" Style="{StaticResource
Label}"/>
<TextBox x:Name="contactTitleTextBox" Grid.Row="3" Style="
{StaticResource CustTextBox}"
Text="{Binding ContactTitle, Mode=TwoWay,
NotifyOnValidationError=true, ValidatesOnExceptions=true}"/>
<Label Content="Address:" Grid.Row="4" Style="{StaticResource
Label}"/>
<TextBox x:Name="addressTextBox" Grid.Row="4" Style="
{StaticResource CustTextBox}"
Text="{Binding Address, Mode=TwoWay,
NotifyOnValidationError=true, ValidatesOnExceptions=true}"/>
<Label Content="City:" Grid.Column="1" Grid.Row="0" Style="
{StaticResource Label}"/>
<TextBox x:Name="cityTextBox" Grid.Column="1" Grid.Row="0" Style="
{StaticResource CustTextBox}"
Text="{Binding City, Mode=TwoWay,
NotifyOnValidationError=true, ValidatesOnExceptions=true}"/>
<Label Content="Country:" Grid.Column="1" Grid.Row="1" Style="
{StaticResource Label}"/>
<TextBox x:Name="countryTextBox" Grid.Column="1" Grid.Row="1"
Style="{StaticResource CustTextBox}"
Text="{Binding Country, Mode=TwoWay,
NotifyOnValidationError=true, ValidatesOnExceptions=true}"/>
<Label Content="Fax:" Grid.Column="1" Grid.Row="2" Style="
{StaticResource Label}"/>
<TextBox x:Name="faxTextBox" Grid.Column="1" Grid.Row="2" Style="
{StaticResource CustTextBox}"
Text="{Binding Fax, Mode=TwoWay,
NotifyOnValidationError=true, ValidatesOnExceptions=true}"/>
<Label Content="Phone:" Grid.Column="1" Grid.Row="3" Style="
{StaticResource Label}"/>
<TextBox x:Name="phoneTextBox" Grid.Column="1" Grid.Row="3" Style="
{StaticResource CustTextBox}"
Text="{Binding Phone, Mode=TwoWay,
NotifyOnValidationError=true, ValidatesOnExceptions=true}"/>
<Label Content="Postal Code:" Grid.Column="1" Grid.Row="4"
VerticalAlignment="Center" Style="{StaticResource Label}"/>
<TextBox x:Name="postalCodeTextBox" Grid.Column="1" Grid.Row="4"
Style="{StaticResource CustTextBox}"
Text="{Binding PostalCode, Mode=TwoWay,
NotifyOnValidationError=true, ValidatesOnExceptions=true}"/>
<Label Content="Region:" Grid.Column="1" Grid.Row="5" Style="
{StaticResource Label}"/>
<TextBox x:Name="regionTextBox" Grid.Column="1" Grid.Row="5"
Style="{StaticResource CustTextBox}"
Text="{Binding Region, Mode=TwoWay,
NotifyOnValidationError=true, ValidatesOnExceptions=true}"/>
</Grid>
<Grid x:Name="newCustomerGrid" Grid.Row="1" HorizontalAlignment="Left"
VerticalAlignment="Top" Margin="5" DataContext="{Binding RelativeSource=
{RelativeSource FindAncestor, AncestorType={x:Type Window}},
Path=newCustomer, UpdateSourceTrigger=Explicit}" Visibility="Collapsed"
Background="CornflowerBlue">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" MinWidth="233"/>
<ColumnDefinition Width="Auto" MinWidth="397"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Label Content="Customer ID:" Grid.Row="0" Style="{StaticResource
Label}"/>
<TextBox x:Name="add_customerIDTextBox" Grid.Row="0" Style="
{StaticResource CustTextBox}"
Text="{Binding CustomerID, Mode=TwoWay,
NotifyOnValidationError=true, ValidatesOnExceptions=true}"/>
<Label Content="Company Name:" Grid.Row="1" Style="{StaticResource
Label}"/>
<TextBox x:Name="add_companyNameTextBox" Grid.Row="1" Style="
{StaticResource CustTextBox}"
Text="{Binding CompanyName, Mode=TwoWay,
NotifyOnValidationError=true, ValidatesOnExceptions=true }"/>
<Label Content="Contact Name:" Grid.Row="2" Style="{StaticResource
Label}"/>
<TextBox x:Name="add_contactNameTextBox" Grid.Row="2" Style="
{StaticResource CustTextBox}"
Text="{Binding ContactName, Mode=TwoWay,
NotifyOnValidationError=true, ValidatesOnExceptions=true}"/>
<Label Content="Contact title:" Grid.Row="3" Style="{StaticResource
Label}"/>
<TextBox x:Name="add_contactTitleTextBox" Grid.Row="3" Style="
{StaticResource CustTextBox}"
Text="{Binding ContactTitle, Mode=TwoWay,
NotifyOnValidationError=true, ValidatesOnExceptions=true}"/>
<Label Content="Address:" Grid.Row="4" Style="{StaticResource
Label}"/>
<TextBox x:Name="add_addressTextBox" Grid.Row="4" Style="
{StaticResource CustTextBox}"
Text="{Binding Address, Mode=TwoWay,
NotifyOnValidationError=true, ValidatesOnExceptions=true}"/>
<Label Content="City:" Grid.Column="1" Grid.Row="0" Style="
{StaticResource Label}"/>
<TextBox x:Name="add_cityTextBox" Grid.Column="1" Grid.Row="0"
Style="{StaticResource CustTextBox}"
Text="{Binding City, Mode=TwoWay,
NotifyOnValidationError=true, ValidatesOnExceptions=true}"/>
<Label Content="Country:" Grid.Column="1" Grid.Row="1" Style="
{StaticResource Label}"/>
<TextBox x:Name="add_countryTextBox" Grid.Column="1" Grid.Row="1"
Style="{StaticResource CustTextBox}"
Text="{Binding Country, Mode=TwoWay,
NotifyOnValidationError=true, ValidatesOnExceptions=true}"/>
<Label Content="Fax:" Grid.Column="1" Grid.Row="2" Style="
{StaticResource Label}"/>
<TextBox x:Name="add_faxTextBox" Grid.Column="1" Grid.Row="2"
Style="{StaticResource CustTextBox}"
Text="{Binding Fax, Mode=TwoWay,
NotifyOnValidationError=true, ValidatesOnExceptions=true}"/>
<Label Content="Phone:" Grid.Column="1" Grid.Row="3" Style="
{StaticResource Label}"/>
<TextBox x:Name="add_phoneTextBox" Grid.Column="1" Grid.Row="3"
Style="{StaticResource CustTextBox}"
Text="{Binding Phone, Mode=TwoWay,
NotifyOnValidationError=true, ValidatesOnExceptions=true}"/>
<Label Content="Postal Code:" Grid.Column="1" Grid.Row="4"
VerticalAlignment="Center" Style="{StaticResource Label}"/>
<TextBox x:Name="add_postalCodeTextBox" Grid.Column="1"
Grid.Row="4" Style="{StaticResource CustTextBox}"
Text="{Binding PostalCode, Mode=TwoWay,
NotifyOnValidationError=true, ValidatesOnExceptions=true}"/>
<Label Content="Region:" Grid.Column="1" Grid.Row="5" Style="
{StaticResource Label}"/>
<TextBox x:Name="add_regionTextBox" Grid.Column="1" Grid.Row="5"
Style="{StaticResource CustTextBox}"
Text="{Binding Region, Mode=TwoWay,
NotifyOnValidationError=true, ValidatesOnExceptions=true}"/>
</Grid>
<Grid x:Name="newOrderGrid" Grid.Row="1" HorizontalAlignment="Left"
VerticalAlignment="Top" Margin="5" DataContext="{Binding Path=newOrder,
Mode=TwoWay}" Visibility="Collapsed" Background="LightGreen">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" MinWidth="233"/>
<ColumnDefinition Width="Auto" MinWidth="397"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Label Content="New Order Form" FontWeight="Bold"/>
<Label Content="Employee ID:" Grid.Row="1" Style="{StaticResource
Label}"/>
<TextBox x:Name="add_employeeIDTextBox" Grid.Row="1" Style="
{StaticResource CustTextBox}"
Text="{Binding EmployeeID, Mode=TwoWay,
NotifyOnValidationError=true, ValidatesOnExceptions=true}"/>
<Label Content="Order Date:" Grid.Row="2" Style="{StaticResource
Label}"/>
<DatePicker x:Name="add_orderDatePicker" Grid.Row="2"
HorizontalAlignment="Right" Width="120"
SelectedDate="{Binding OrderDate, Mode=TwoWay,
NotifyOnValidationError=true, ValidatesOnExceptions=true,
UpdateSourceTrigger=PropertyChanged}"/>
<Label Content="Required Date:" Grid.Row="3" Style="{StaticResource
Label}"/>
<DatePicker x:Name="add_requiredDatePicker" Grid.Row="3"
HorizontalAlignment="Right" Width="120"
SelectedDate="{Binding RequiredDate, Mode=TwoWay,
NotifyOnValidationError=true, ValidatesOnExceptions=true,
UpdateSourceTrigger=PropertyChanged}"/>
<Label Content="Shipped Date:" Grid.Row="4" Style="
{StaticResource Label}"/>
<DatePicker x:Name="add_shippedDatePicker" Grid.Row="4"
HorizontalAlignment="Right" Width="120"
SelectedDate="{Binding ShippedDate, Mode=TwoWay,
NotifyOnValidationError=true, ValidatesOnExceptions=true,
UpdateSourceTrigger=PropertyChanged}"/>
<Label Content="Ship Via:" Grid.Row="5" Style="{StaticResource
Label}"/>
<TextBox x:Name="add_ShipViaTextBox" Grid.Row="5" Style="
{StaticResource CustTextBox}"
Text="{Binding ShipVia, Mode=TwoWay,
NotifyOnValidationError=true, ValidatesOnExceptions=true}"/>
<Label Content="Freight" Grid.Row="6" Style="{StaticResource
Label}"/>
<TextBox x:Name="add_freightTextBox" Grid.Row="6" Style="
{StaticResource CustTextBox}"
Text="{Binding Freight, Mode=TwoWay,
NotifyOnValidationError=true, ValidatesOnExceptions=true}"/>
</Grid>
<DataGrid x:Name="ordersDataGrid" SelectionUnit="Cell"
SelectionMode="Single" AutoGenerateColumns="False" CanUserAddRows="false"
IsEnabled="True" EnableRowVirtualization="True" Width="auto" ItemsSource="
{Binding Source={StaticResource customerOrdersViewSource}}"
Margin="10,10,10,10" Grid.Row="2"
RowDetailsVisibilityMode="VisibleWhenSelected">
<DataGrid.Columns>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Content="Delete" Command="{StaticResource
DeleteOrderCommand}" CommandParameter="{Binding}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn x:Name="customerIDColumn" Binding="{Binding
CustomerID}" Header="Customer ID" Width="SizeToHeader"/>
<DataGridTextColumn x:Name="employeeIDColumn" Binding="{Binding
EmployeeID}" Header="Employee ID" Width="SizeToHeader"/>
<DataGridTextColumn x:Name="freightColumn" Binding="{Binding
Freight}" Header="Freight" Width="SizeToHeader"/>
<DataGridTemplateColumn x:Name="orderDateColumn" Header="Order
Date" Width="SizeToHeader">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<DatePicker SelectedDate="{Binding OrderDate,
Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true,
UpdateSourceTrigger=PropertyChanged}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn x:Name="orderIDColumn" Binding="{Binding
OrderID}" Header="Order ID" Width="SizeToHeader"/>
<DataGridTemplateColumn x:Name="requiredDateColumn"
Header="Required Date" Width="SizeToHeader">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<DatePicker SelectedDate="{Binding RequiredDate,
Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true,
UpdateSourceTrigger=PropertyChanged}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn x:Name="shipAddressColumn" Binding="
{Binding ShipAddress}" Header="Ship Address" Width="SizeToHeader"/>
<DataGridTextColumn x:Name="shipCityColumn" Binding="{Binding
ShipCity}" Header="Ship City" Width="SizeToHeader"/>
<DataGridTextColumn x:Name="shipCountryColumn" Binding="
{Binding ShipCountry}" Header="Ship Country" Width="SizeToHeader"/>
<DataGridTextColumn x:Name="shipNameColumn" Binding="{Binding
ShipName}" Header="Ship Name" Width="SizeToHeader"/>
<DataGridTemplateColumn x:Name="shippedDateColumn"
Header="Shipped Date" Width="SizeToHeader">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<DatePicker SelectedDate="{Binding ShippedDate,
Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true,
UpdateSourceTrigger=PropertyChanged}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn x:Name="shipPostalCodeColumn" Binding="
{Binding ShipPostalCode}" Header="Ship Postal Code" Width="SizeToHeader"/>
<DataGridTextColumn x:Name="shipRegionColumn" Binding="{Binding
ShipRegion}" Header="Ship Region" Width="SizeToHeader"/>
<DataGridTextColumn x:Name="shipViaColumn" Binding="{Binding
ShipVia}" Header="Ship Via" Width="SizeToHeader"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
Adicionar botões para navegar, adicionar,
atualizar e excluir
Em aplicativos do Windows Forms, você obtém um objeto BindingNavigator com
botões para navegar por linhas em um banco de dados e fazer operações CRUD básicas.
O WPF não fornece um BindingNavigator, mas é fácil o suficiente para criar um. Você faz
isso com botões dentro de um StackPanel horizontal e associa os botões a comandos
associados a métodos no código atrás.
XAML
XAML
<Window.CommandBindings>
<CommandBinding Command="{StaticResource FirstCommand}"
Executed="FirstCommandHandler"/>
<CommandBinding Command="{StaticResource LastCommand}"
Executed="LastCommandHandler"/>
<CommandBinding Command="{StaticResource NextCommand}"
Executed="NextCommandHandler"/>
<CommandBinding Command="{StaticResource PreviousCommand}"
Executed="PreviousCommandHandler"/>
<CommandBinding Command="{StaticResource DeleteCustomerCommand}"
Executed="DeleteCustomerCommandHandler"/>
<CommandBinding Command="{StaticResource DeleteOrderCommand}"
Executed="DeleteOrderCommandHandler"/>
<CommandBinding Command="{StaticResource UpdateCommand}"
Executed="UpdateCommandHandler"/>
<CommandBinding Command="{StaticResource AddCommand}"
Executed="AddCommandHandler"/>
<CommandBinding Command="{StaticResource CancelCommand}"
Executed="CancelCommandHandler"/>
</Window.CommandBindings>
XAML
XAML
um cliente ou pedido existente com as alterações feitas pelo usuário nas caixas de texto.
C#
if (cust != null)
{
foreach (var ord in cust.Orders.ToList())
{
Delete_Order(ord);
}
context.Customers.Remove(cust);
}
context.SaveChanges();
custViewSource.View.Refresh();
}
// Commit changes from the new customer form, the new order form,
// or edits made to the existing customer form.
private void UpdateCommandHandler(object sender, ExecutedRoutedEventArgs e)
{
if (newCustomerGrid.IsVisible)
{
// Create a new object because the old one
// is being tracked by EF now.
Customer newCustomer = new Customer
{
Address = add_addressTextBox.Text,
City = add_cityTextBox.Text,
CompanyName = add_companyNameTextBox.Text,
ContactName = add_contactNameTextBox.Text,
ContactTitle = add_contactTitleTextBox.Text,
Country = add_countryTextBox.Text,
CustomerID = add_customerIDTextBox.Text,
Fax = add_faxTextBox.Text,
Phone = add_phoneTextBox.Text,
PostalCode = add_postalCodeTextBox.Text,
Region = add_regionTextBox.Text
};
newCustomerGrid.Visibility = Visibility.Collapsed;
existingCustomerGrid.Visibility = Visibility.Visible;
}
else if (newOrderGrid.IsVisible)
{
// Order ID is auto-generated so we don't set it here.
// For CustomerID, address, etc we use the values from current
customer.
// User can modify these in the datagrid after the order is entered.
Customer currentCustomer =
(Customer)custViewSource.View.CurrentItem;
try
{
newOrder.EmployeeID = Int32.Parse(add_employeeIDTextBox.Text);
}
catch
{
MessageBox.Show("EmployeeID must be a valid integer value.");
return;
}
try
{
// Exercise for the reader if you are using Northwind:
// Add the Northwind Shippers table to the model.
try
{
newOrder.Freight = Convert.ToDecimal(add_freightTextBox.Text);
}
catch
{
MessageBox.Show("Freight must be convertible to decimal.");
return;
}
// Sets up the form so that user can enter data. Data is later
// saved when user clicks Commit.
private void AddCommandHandler(object sender, ExecutedRoutedEventArgs e)
{
existingCustomerGrid.Visibility = Visibility.Collapsed;
newOrderGrid.Visibility = Visibility.Collapsed;
newCustomerGrid.Visibility = Visibility.Visible;
existingCustomerGrid.Visibility = Visibility.Collapsed;
newCustomerGrid.Visibility = Visibility.Collapsed;
newOrderGrid.UpdateLayout();
newOrderGrid.Visibility = Visibility.Visible;
}
existingCustomerGrid.Visibility = Visibility.Visible;
newCustomerGrid.Visibility = Visibility.Collapsed;
newOrderGrid.Visibility = Visibility.Collapsed;
}
Executar o aplicativo
Para iniciar a depuração, pressione F5. Você deve ver os dados do cliente e do pedido
preenchidos na grade e os botões de navegação devem funcionar conforme o
esperado. Clique em Confirmar para adicionar um novo cliente ou pedido ao modelo
depois de inserir os dados. Clique em Cancelar para sair de um novo cliente ou novo
formulário de pedido sem salvar os dados. Você pode fazer edições para clientes e
pedidos existentes diretamente nas caixas de texto e essas alterações são gravadas no
modelo automaticamente.
Conteúdo relacionado
Ferramentas de dados do Visual Studio para .NET
documentação do Entity Framework
Comentários
Esta página foi útil? Yes No
Muitas vezes, o C++ nativo pode fornecer o desempenho mais rápido quando você
estiver acessando fontes de dados. No entanto, as ferramentas de dados de aplicativos
C++ no Visual Studio não são tão avançadas quanto as de aplicativos .NET. Por
exemplo, a janela Fontes de Dados não pode ser usada para arrastar e soltar fontes de
dados em uma superfície de design C++. Caso precise de uma camada relacional de
objeto, você precisará escrever uma própria ou usar um produto de terceiros. O mesmo
vale para a funcionalidade de associação de dados, ainda que os aplicativos que usam a
biblioteca do Microsoft Foundation Class possam usar algumas classes de banco de
dados, juntamente com documentos e exibições, para armazenar dados na memória e
exibi-los para o usuário. Para obter mais informações, confira Acesso a dados no Visual
C++.
Para se conectar a bancos de dados SQL, os aplicativos C++ nativos podem usar os
drivers ODBC e OLE DB e o provedor do ADO incluídos no Windows. Eles podem se
conectar a qualquer banco de dados que dê suporte a essas interfaces. O driver ODBC é
o padrão. O OLE DB é fornecido para compatibilidade com versões anteriores. Para
obter mais informações sobre essas tecnologias de dados, confira Windows Data Access
Components.
C++
#define _SQLNCLI_ODBC_
#include <sqlncli.h>
Observe que o exemplo não usa nenhuma das funcionalidades nativas do cliente
de verdade, portanto, as etapas anteriores não são necessárias para a compilação
e execução. Porém, agora o projeto está configurado para você usar essa
funcionalidade. Para obter mais informações, confira Programação do SQL Server
Native Client.
C++
8. Pressione F5 para compilar e executar o aplicativo. Você deverá ver uma caixa de
diálogo do driver que solicitando a inserção de um banco de dados. Insira
(localdb)\MSSQLLocalDB e marque Usar Conexão Confiável. Pressione OK. Você
deverá ver um console com mensagens que indiquem uma conexão bem-
sucedida. Você também deve ver um prompt de comando no qual possa digitar
uma instrução SQL. A tela a seguir mostra um exemplo de consulta e seus
resultados:
Confira também
Acessando dados no Visual Studio
Passo a passo: criar classes LINQ to SQL
usando a herança de tabela única
(Designer Relacional de Objetos)
Artigo • 12/01/2024
As ferramentas de LINQ to SQL no Visual Studio dão suporte à herança de tabela única,
pois normalmente são implementadas em sistemas relacionais. Este passo a passo se
aprofunda nas etapas genéricas fornecidas no tópico Como configurar a herança
usando o Designer Relacional de Objetos e fornece alguns dados reais para demonstrar
o uso da herança no Designer Relacional de Objetos.
7 Observação
Você pode usar o banco de dados Northwind ou qualquer outro banco de
dados ao qual você possa adicionar uma tabela.
ノ Expandir a tabela
ID int Falso
ノ Expandir a tabela
4 2 Gatis Ozolins 1
5 2 Andreas Hauser 1
6 2 Tiffany Phuvasate 1
7 2 Alexey Orekhov 2
8 2 Michał Poliszkiewicz 2
9 2 Tai Yee 2
10 2 Fabricio Noriega 3
11 2 Mindy Martin 3
12 2 Ken Kwok 3
C#
C#
Testar o aplicativo
Execute o aplicativo e verifique se os registros exibidos na caixa de listagem são todos
empregados (os registros que têm um valor de 2 na coluna Tipo).
Conteúdo relacionado
Ferramentas do LINQ to SQL no Visual Studio
Passo a passo: criando classes LINQ to SQL (Designer Relacional de Objetos)
Como atribuir procedimentos armazenados para executar atualizações, inserções e
exclusões (Designer Relacional de Objetos)
LINQ to SQL
Como gerar o modelo de objeto em Visual Basic ou C#
Passo a passo: criar um aplicativo de
dados de n camadas com ADO.NET e o
.NET Framework
Artigo • 01/11/2023
Aplica-se a: Visual Studio Visual Studio para Mac Visual Studio Code
7 Observação
Pré-requisitos
Para concluir este passo a passo, você precisa das cargas de trabalho de
desenvolvimento em .NET para desktop e Armazenamento e processamento de dados
instaladas no Visual Studio. Para instalá-las, abra Instalador do Visual Studio e escolha
Modificar (ou Mais>Modificar) ao lado da versão do Visual Studio que você deseja
modificar. Confira Modificar o Visual Studio.
Este passo a passo usa o SQL Server Express LocalDB e o banco de dados de exemplo
da Northwind.
1. Se você não tiver SQL Server Express LocalDB, instale-o por meio da página de
download do SQL Server Express ou usando o Instalador do Visual Studio. No
Instalador do Visual Studio, você pode instalar o SQL Server Express LocalDB
como parte da carga de trabalho do Desenvolvimento para desktop com .NET ou
como um componente individual.
7 Observação
7 Observação
-ou-
6. Se o banco de dados exigir uma senha, selecione a opção para incluir dados
confidenciais e, em seguida, escolha Próximo.
7 Observação
7 Observação
7. Clique em Concluir.
6. Clique em Concluir.
4. Clique em OK.
7 Observação
Para projetos C#, adicione uma referência ao assembly
System.Data.DataSetExtensions para que o código a seguir seja compilado.
C#
C#
[OperationContract]
DataEntityTier.NorthwindDataSet.CustomersDataTable GetCustomers();
[OperationContract]
DataEntityTier.NorthwindDataSet.OrdersDataTable GetOrders();
7 Observação
C#
C#
public DataEntityTier.NorthwindDataSet.CustomersDataTable
GetCustomers()
{
DataAccessTier.NorthwindDataSetTableAdapters.CustomersTableAdapter
CustomersTableAdapter1
= new
DataAccessTier.NorthwindDataSetTableAdapters.CustomersTableAdapter(
);
return CustomersTableAdapter1.GetCustomers();
}
public DataEntityTier.NorthwindDataSet.OrdersDataTable GetOrders()
{
DataAccessTier.NorthwindDataSetTableAdapters.OrdersTableAdapter
OrdersTableAdapter1
= new
DataAccessTier.NorthwindDataSetTableAdapters.OrdersTableAdapter();
return OrdersTableAdapter1.GetOrders();
}
7 Observação
C#
C#
ServiceReference1.Service1Client DataSvc =
new ServiceReference1.Service1Client();
northwindDataSet.Customers.Merge(DataSvc.GetCustomers());
northwindDataSet.Orders.Merge(DataSvc.GetOrders());
7 Observação
exemplo a seguir:
XML
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding maxBufferSize="6553600"
maxReceivedMessageSize="6553600" />
</basicHttpBinding>
</bindings>
</system.serviceModel>
Testar o aplicativo
Execute o aplicativo pressionando F5. Os dados das tabelas Customers e Orders são
recuperados a partir do serviço de dados e exibidos no formulário.
Próximas etapas
Dependendo dos requisitos do aplicativo, existem várias etapas que você talvez queira
realizar após salvar os dados relacionados no aplicativo baseado em Windows. Por
exemplo, você poderia fazer as seguintes melhorias a este aplicativo:
Adicionar validação ao conjunto de dados.
Confira também
Trabalhar com conjuntos de dados em aplicativos de n camadas
Atualização hierárquica
Acessando dados no Visual Studio
Sistemas de banco de dados
compatíveis para Visual Studio
Artigo • 09/04/2024
Para que um sistema de banco de dados possa ser acessado por aplicativos .NET e fique
visível nas janelas de ferramentas de dados do Visual Studio, ele deve ter um provedor
de dados ADO.NET. Um provedor deve dar suporte especificamente ao Entity
Framework se você planeja usar modelos de dados de entidade em seu aplicativo .NET.
Muitos provedores são oferecidos por meio do Gerenciador de Pacotes NuGet ou por
meio do Visual Studio Marketplace.
A lista a seguir inclui alguns dos sistemas de banco de dados mais populares que
podem ser usados em projetos do Visual Studio. A lista não é exaustiva. Para obter uma
lista de fornecedores extermps que oferecem provedores de dados ADO.NET que
permitem uma integração profunda com as ferramentas do Visual Studio, consulte
Provedores de Dados ADO.NET.
Oracle
Você pode baixar uma edição paga ou gratuita do banco de dados Oracle na página da
rede de tecnologia Oracle . Para obter suporte em tempo de design para o Entity
Framework e TableAdapters, você precisará do Ferramentas para desenvolvedores
Oracle para Visual Studio . Outros produtos Oracle oficiais, incluindo o Oracle Instant
Client, estão disponíveis por meio do Gerenciador de Pacotes NuGet. Você pode baixar
esquemas de exemplo do Oracle seguindo as instruções na documentação online do
Oracle .
MySQL
O MySQL é um sistema de banco de dados de código aberto popular que é
amplamente usado em empresas e sites. Os downloads do MySQL, MySQL para Visual
Studio e produtos relacionados estão no MySQL no Windows . Terceiros oferecem
várias extensões do Visual Studio e aplicativos de gerenciamento autônomos para o
MySQL. Você pode procurar as ofertas no Gerenciador de Pacotes NuGet
(Ferramentas>Gerenciador de Pacotes NuGet>Gerenciar Pacotes NuGet para a
Solução).
PostgreSQL
O PostgreSQL é um sistema de banco de dados relacional de objetos gratuito e de
código aberto. Para instalá-lo no Windows, você pode baixá-lo na página de download
do PostgreSQL . Você também pode criar o PostgreSQL com base no código-fonte. O
sistema principal do PostgreSQL inclui uma interface da linguagem C. Muitos terceiros
fornecem pacotes NuGet para usar o PostgreSQL em aplicativos .NET. Você pode
procurar as ofertas no Gerenciador de Pacotes NuGet (Ferramentas>Gerenciador de
Pacotes NuGet>Gerenciar Pacotes NuGet para a Solução). Talvez o pacote mais
popular seja fornecido por npgsql.org .
SQLite
O SQLite é um Mecanismo de Banco de Dados SQL inserido que é executado no próprio
processo do aplicativo. Você pode baixá-lo na página de download do SQLite .
Também há muitos pacotes NuGet de terceiros para SQLite disponíveis. Você pode
procurar as ofertas no Gerenciador de Pacotes NuGet (Ferramentas>Gerenciador de
Pacotes NuGet>Gerenciar Pacotes NuGet para a Solução).
Firebird
O Firebird é um sistema de banco de dados SQL de código aberto. Você pode baixá-lo
na página de download do Firebird . Um provedor de dados ADO.NET está disponível
por meio do Gerenciador de Pacotes NuGet.
Conteúdo relacionado
Acessando dados no Visual Studio
Como determinar a versão e a edição do SQL Server e seus componentes
Comentários
Esta página foi útil? Yes No
Ferramentas de dados do Visual Studio
para desenvolvimento .NET Framework
Artigo • 12/01/2024
O Visual Studio e o .NET juntos dão um amplo suporte a API e ferramentas para se
conectar a bancos de dados, modelar dados na memória e exibir os dados na interface
do usuário. As classes .NET que fornecem funcionalidade de acesso a dados são
conhecidas como ADO.NET. O ADO.NET, juntamente com as ferramentas de dados no
Visual Studio, foi projetado principalmente para dar suporte a bancos de dados
relacionais e XML. Atualmente, muitos fornecedores de banco de dados NoSQL ou
terceiros oferecem provedores do ADO.NET.
7 Observação
2. Teste a conexão com o banco de dados (ou com o serviço ou com o arquivo local)
no Visual Studio. Confira Adicionar novas conexões.
4. Arraste a fonte de dados da janela Fontes de Dados para uma superfície de design
do Windows Forms, ASP.NET ou Windows Presentation Foundation para gerar o
código de associação de dados que exibirá os dados para o usuário da maneira
que você especificar. Confira Associar controles a dados no Visual Studio.
Você pode ignorar a Etapa 3 e programar um aplicativo .NET para emitir comandos
diretamente para um banco de dados em vez de usar um modelo. Nesse caso, você
encontrará a documentação relevante aqui: ADO.NET. Lembre-se que você ainda pode
usar o Assistente de Configuração da Fonte de Dados e designers para gerar códigos
de associação de dados ao preencher seus próprios objetos na memória e, em seguida,
associar dados de controles de interface do usuário a esses objetos.
Confira também
Acessar dados no Visual Studio
Ferramentas do Entity Framework no
Visual Studio
Artigo • 10/02/2025
7 Observação
As Ferramentas do Entity Framework descritas nesta página são usadas para gerar
arquivos .edmx , que não têm suporte no EF Core. Para gerar um modelo EF Core de
um banco de dados existente, consulte Engenharia Reversa – EF Core. Para obter
mais informações sobre as diferenças entre o EF 6 e o EF Core, consulte Comparar
EF 6 e EF Core.
Com o Entity Framework Tools, você pode criar um modelo conceitual de um banco de
dados existente e, em seguida, visualizar e editar graficamente seu modelo conceitual.
Ou, você pode criar um modelo conceitual graficamente primeiro e, em seguida, gerar
um banco de dados que dê suporte ao seu modelo. Em ambos os casos, você pode
atualizar automaticamente seu modelo quando o banco de dados subjacente for
alterado e gerar automaticamente o código de camada de objeto para seu aplicativo.
Geração de banco de dados e geração de código de camada de objeto são
personalizáveis.
Você pode usar o assistente Criar Banco de Dados para criar um modelo
conceitual primeiro e, em seguida, criar um banco de dados que dê suporte ao
modelo.
Você pode usar o Assistente de Modelo de Atualização para atualizar seu modelo
conceitual, modelo de armazenamento e mapeamentos quando forem feitas
alterações no banco de dados subjacente.
7 Observação
Entity Framework 6 Power Tools ajudam você a criar aplicativos que usam o Modelo
de Dados de Entidade. As ferramentas elétricas podem gerar um modelo conceitual,
validar um modelo existente, produzir arquivos de código-fonte que contêm classes de
objeto com base no modelo conceitual e produzir arquivos de código-fonte que
contêm exibições geradas pelo modelo. Para obter informações detalhadas, confira
Exibições de Mapeamento Pré-geradas.
Conteúdo relacionado
ノ Expandir a tabela
Título Descrição
ferramentas de dados do Visual Studio Fornece uma visão geral das ferramentas de dados
para o desenvolvimento com o .NET do .NET Framework no Visual Studio.
Framework
Comentários
Esta página foi útil? Yes No
7 Observação
Use a janela Fontes de Dados para criar um novo conjunto de dados a partir de
uma ou mais fontes de dados. Use o Designer de Conjunto de Dados para
configurar o conjunto de dados e definir suas propriedades. Por exemplo, você
precisa especificar quais tabelas da fonte de dados serão incluídas e quais colunas
de cada tabela. Escolha cuidadosamente para conservar a quantidade de memória
requerida pelo conjunto de dados. Para obter mais informações, consulte Create
and configure datasets (Criar e configurar conjuntos de dados).
Conteúdo relacionado
Ferramentas de dados do Visual Studio para .NET
Comparação entre conjuntos de dados
tipados e não tipados no .NET
Framework
Artigo • 12/01/2024
7 Observação
Por outro lado, um conjunto de dados não tipados não tem nenhum esquema interno
correspondente. Como em um conjunto de dados tipados, um conjunto de dados não
tipados contém tabelas, colunas e assim por diante, mas são expostos apenas como
coleções. (No entanto, depois de criar manualmente as tabelas e outros elementos de
dados em um conjunto de dados não tipados, você pode exportar a estrutura do
conjunto de dados como um esquema usando o método WriteXmlSchema do conjunto
de dados.)
Contraste o acesso a dados em conjuntos de
dados tipados e não tipados
A classe de um conjunto de dados tipados tem um modelo de objeto no qual suas
propriedades assumem os nomes reais das tabelas e colunas. Por exemplo, se você
estiver trabalhando com um conjunto de dados tipados, poderá referenciar uma coluna
usando código como o seguinte:
C#
C#
// This accesses the CustomerID column in the first row of the Customers
table.
string customerIDValue = northwindDataSet.Customers[0].CustomerID;
Por outro lado, se você estiver trabalhando com um conjunto de dados não tipados, o
código equivalente será:
C#
C#
O acesso tipado não é apenas mais fácil de ler, mas também é totalmente compatível
com o IntelliSense no Visual Studio Code Editor. Além de ser mais fácil de trabalhar, a
sintaxe do conjunto de dados tipados fornece verificação de tipo em tempo de
compilação, reduzindo consideravelmente a possibilidade de erros na atribuição de
valores aos membros do conjunto de dados. Se você alterar o nome de uma coluna em
sua classe DataSet e compilar o aplicativo, receberá um erro de build. Ao clicar duas
vezes no erro de build na Lista de Tarefas, você poderá ir diretamente para a linha ou as
linhas de código que fazem referência ao nome da coluna antiga. O acesso a tabelas e
colunas em um conjunto de dados tipados também é um pouco mais rápido no tempo
de execução porque o acesso é determinado no tempo de compilação, não por meio de
coleções em tempo de execução.
Conteúdo relacionado
Ferramentas do conjunto de dados
Preencher conjuntos de dados usando
TableAdapters em aplicativos do .NET
Framework
Artigo • 01/11/2023
Aplica-se a: Visual Studio Visual Studio para Mac Visual Studio Code
7 Observação
7 Observação
Tópico Descrição
TableAdapters
C#
C#
NorthwindDataSetTableAdapters.CustomersTableAdapter
customersTableAdapter =
new NorthwindDataSetTableAdapters.CustomersTableAdapter();
customersTableAdapter.Fill(northwindDataSet.Customers);
consultas TableAdapter
Os TableAdapters pode conter várias consultas para preencher suas tabelas de dados
associadas. Você pode definir quantas consultas forem necessárias para um
TableAdapter, desde que cada consulta retorne dados em conformidade com o mesmo
esquema que a tabela de dados associada. Essa funcionalidade permite que um
TableAdapter carregue resultados diferentes com base em critérios diferentes.
Por exemplo, se o aplicativo contiver uma tabela com nomes de clientes, você poderá
criar uma consulta que preencha a tabela com cada nome de cliente que começa com
determinada letra e outra que preencha a tabela com todos os clientes localizados no
mesmo estado. Para preencher uma tabela Customers com clientes em determinado
estado, você pode criar uma consulta FillByState que usa um parâmetro para o valor
de estado da seguinte maneira: SELECT * FROM Customers WHERE State = @State . Execute
a consulta chamando o método FillByState e passando o valor do parâmetro como
este: CustomerTableAdapter.FillByState("WA") .
Além de adicionar consultas que retornam dados do mesmo esquema que a tabela de
dados do TableAdapter, você pode adicionar consultas que retornam valores escalares
(únicos). Por exemplo, uma consulta que retorna uma contagem de clientes ( SELECT
Count(*) From Customers ) é válida para um CustomersTableAdapter, , mesmo que os
Herança do TableAdapter
Os TableAdapters estendem a funcionalidade dos adaptadores de dados padrão
encapsulando uma classe DataAdapter configurada. Por padrão, o TableAdapter herda
da classe Component e não pode ser convertido na classe DataAdapter. Converter um
TableAdapter na classe DataAdapter resulta em um erro InvalidCastException. Para
alterar a classe base de um TableAdapter, você pode especificar uma classe derivada do
Component na propriedade Classe Base do TableAdapter no Designer de Conjunto de
Dados.
Membro DESCRIÇÃO
TableAdapter.Insert Cria uma nova linha na tabela de dados. Para obter mais
informações, confira Inserir novos registros em um banco de
dados.
Quando você usa um TableAdapter, ele executa efetivamente as mesmas operações com
os comandos que normalmente você executaria. Por exemplo, quando você chama o
método Fill do adaptador, o adaptador executa o comando de dados na propriedade
SelectCommand e usa um leitor de dados (por exemplo, SqlDataReader) para carregar o
dados.
7 Observação
TableAdapter GenerateDbDirectMethods
Além de InsertCommand , UpdateCommand e DeleteCommand , os TableAdapters são criados
com métodos que você pode executar diretamente no banco de dados. Você pode
chamar esses métodos ( TableAdapter.Insert , TableAdapter.Update e
TableAdapter.Delete ) diretamente para manipular dados no banco de dados. Isso
significa que você pode chamar esses métodos individuais do código, em vez de chamar
TableAdapter.Update para lidar com as inserções, atualizações e exclusões pendentes
Referência de TableAdapterManager
Por padrão, uma classe TableAdapterManager é gerada quando você cria um conjunto
de dados que contém tabelas relacionadas. Para impedir que a classe seja gerada, altere
o valor da propriedade Hierarchical Update do conjunto de dados para false. Quando
você arrasta uma tabela que tem uma relação para a superfície de design de uma
página do Windows Form ou WPF, o Visual Studio declara uma variável de membro da
classe. Se você não usa a vinculação de dados, precisa declarar a variável manualmente.
A classe TableAdapterManager não é um tipo .NET. Portanto, você não pode pesquisá-la
na documentação. Ela é criada em tempo de design como parte do processo de criação
do conjunto de dados.
Estes são os métodos e as propriedades da classe TableAdapterManager usados com
frequência:
Membro Descrição
Segurança
Ao usar comandos de dados com a propriedade CommandType definida como Text,
verifique cuidadosamente as informações enviadas de um cliente antes de passá-las
para o banco de dados. Usuários maliciosos podem tentar enviar (injetar) instruções SQL
modificadas ou adicionais para obter acesso não autorizado ou para danificar o banco
de dados. Antes de transferir a entrada de usuário para um banco de dados, sempre
verifique se as informações são válidas. A melhor prática é sempre usar consultas
parametrizadas ou procedimentos armazenados, quando possível.
Confira também
Ferramentas do conjunto de dados
Trabalhar com conjuntos de dados em
aplicativos de n camadas
Artigo • 12/01/2024
7 Observação
Referência
DataSet
TypedTableBase<T>
Conteúdo relacionado
Visão geral de aplicativos de dados de N camadas
Passo a passo: criando um aplicativo de dados de N camadas
Adicionar código a TableAdapters em aplicativos de n camadas
Adicionar código a conjuntos de dados em aplicativos de n camadas
Adicionar validação a um conjunto de dados de n camadas
Conjuntos de dados e TableAdapters separados m diferentes projetos
Atualização hierárquica
Ferramentas de conjunto de dados no Visual Studio
Acessando dados no Visual Studio
Criar e configurar TableAdapters
Aplicativos de N camadas e remotos com o LINQ to SQL
Projetos de banco de dados e
aplicativos da camada de dados (.NET
Framework)
Artigo • 12/01/2024
7 Observação
Você pode usar projetos de banco de dados para criar bancos de dados, DACs
(aplicativos de camada de dados) e atualizar bancos de dados e aplicativos da camada
de dados existentes. Os projetos de banco de dados e os projetos de DAC permitem
aplicar técnicas de controle de versão e gerenciamento de projetos aos esforços de
desenvolvimento de banco de dados da mesma forma que você aplica essas técnicas ao
código gerenciado ou nativo. Você pode ajudar sua equipe de desenvolvimento a
gerenciar alterações em bancos de dados e servidores de banco de dados criando um
projeto de DAC, um projeto de banco de dados ou um projeto de servidor e colocando-
o sob controle de versão. Os membros da sua equipe podem fazer check-out de
arquivos para fazer, compilar e testar alterações em um ambiente de desenvolvimento
isolado ou em uma área restrita, antes de compartilhá-los com a equipe. Para ajudar a
garantir a qualidade do código, sua equipe pode concluir e testar todas as alterações
para uma versão específica do banco de dados em um ambiente de preparo antes de
implantar as alterações em produção.
Para obter uma lista dos recursos de banco de dados compatíveis com aplicativos da
camada de dados, confira Suporte de DAC para objetos do SQL Server. Se você usar
recursos em seu banco de dados incompatíveis com aplicativos da camada de dados,
deverá usar um projeto de banco de dados para gerenciar alterações no banco de
dados.
Tarefas comuns de alto nível
ノ Expandir a tabela
Conteúdo relacionado
Ferramentas de dados do Visual Studio para .NET
Visão geral de aplicativos de dados de N
camadas
Artigo • 04/05/2023
Aplica-se a: Visual Studio Visual Studio para Mac Visual Studio Code
7 Observação
Camada de apresentação
A camada de apresentação é a camada na qual os usuários interagem com um
aplicativo. Geralmente, ela também contém lógica adicional do aplicativo. Os
componentes típicos da camada de apresentação incluem o seguinte:
Camada intermediária
A camada intermediária é a camada que a camada de apresentação e a camada de
dados usam para se comunicar. Os componentes típicos da camada intermediária
incluem o seguinte:
Camada intermediária
Camada de dados
A camada de dados é basicamente o servidor que armazena os dados de um aplicativo
(por exemplo, um servidor que executa o SQL Server).
Camada de dados
A camada de dados não pode ser acessada diretamente do cliente na camada de
apresentação. Em vez disso, o componente de acesso a dados na camada intermediária
é usado para comunicação entre as camadas de apresentação e de dados.
Confira também
Passo a passo: criando um aplicativo de dados de N camadas
Atualização hierárquica
Ferramentas de conjunto de dados no Visual Studio
Acessando dados no Visual Studio
Criar um banco de dados e adicionar
tabelas em aplicativos do .NET
Framework usando o Visual Studio
Artigo • 03/02/2025
7 Observação
Você pode usar o Visual Studio para criar e atualizar um arquivo de banco de dados
local no SQL Server Express LocalDB. Você também pode criar um banco de dados
executando instruções Transact-SQL na janela de ferramentas Pesquisador de Objetos
do SQL Server no Visual Studio. Neste tópico, você cria um arquivo .mdf e adiciona
tabelas e chaves usando o Designer de Tabela.
Pré-requisitos
Para concluir este passo a passo, você precisa das cargas de trabalho de
desenvolvimento em .NET para desktop e Armazenamento e processamento de dados
instaladas no Visual Studio. Para instalá-las, abra Instalador do Visual Studio e escolha
Modificar (ou Mais>Modificar) ao lado da versão do Visual Studio que você deseja
modificar. Confira Modificar o Visual Studio.
7 Observação
2. Na barra de menus, escolha Projeto>Adicionar Novo Item. Se você vir uma caixa
de diálogo pequena com uma caixa para um nome de arquivo, escolha Mostrar
Todos os Modelos.
3. Na lista de modelos de item, role para baixo e selecione Banco de Dados baseado
em serviço.
7. Na página Escolher seus Objetos de Banco de Dados, você verá uma mensagem
informando que o banco de dados não contém nenhum objeto. Escolha Concluir.
U Cuidado
Dica
Para exibir a cadeia de conexão, você pode abrir o arquivo App.config no Gerenciador de
Soluções. Você deve ver uma entrada sob o elemento connectionStrings semelhante ao
seguinte código:
XML
<connectionStrings>
<add
name="SampleDatabaseWalkthrough.Properties.Settings.SampleDatabaseConnection
String"
connectionString="Data Source=
(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\SampleDatabase.mdf;I
ntegrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
Criar tabelas e chaves usando o Designer de
Tabela
Nesta seção, você criará algumas tabelas, uma chave primária em cada tabela e algumas
linhas de dados de exemplo. Você também criará uma chave estrangeira para especificar
como os registros em uma tabela podem corresponder aos registros na outra tabela.
O Designer de Tabela é aberto e mostra uma grade com uma linha padrão, que
representa uma única coluna na tabela que você está criando. Adicionando linhas
à grade, você adicionará colunas na tabela.
3. Na grade, adicione uma linha para cada uma das seguintes entradas:
ノ Expandir a tabela
SQL
SQL
ノ Expandir a tabela
SQL
4. Adicione uma restrição de índice à tabela Clientes. Adicione uma vírgula no final
da linha OrderQuantity e adicione o seguinte exemplo antes do parêntese de
fechamento:
SQL
É possível especificar cinco caracteres desejados como IDs de cliente, mas escolha
pelo menos um do qual é possível se lembrar para uso posteriormente neste
procedimento.
6. Adicione dados para alguns pedidos. À medida que você insere cada linha, ela é
salva no banco de dados.
) Importante
Conteúdo relacionado
Acessando dados no Visual Studio
Comentários
Esta página foi útil? Yes No
As etapas neste artigo mostram como se conectar a uma fonte de dados no IDE do
Visual Studio. A fonte de dados pode ser um banco de dados local, um serviço de dados
online ou um banco de dados aberto de um .mdf arquivo. Você pode trabalhar
diretamente com seus dados no Visual Studio. Você pode executar consultas, editar
dados, criar e editar tabelas e outras propriedades de esquema, editar funções e
procedimentos armazenados, gatilhos e assim por diante. Essas funções são
independentes da linguagem de programação ou da versão do .NET que você está
usando.
Gerenciador de Servidores
Ela é instalada por padrão no Visual Studio. Pode ser usada para testar conexões e
exibir bancos de dados do SQL Server, quaisquer outros bancos de dados que
tenham um provedor ADO.NET instalado e alguns serviços do Azure. Também
mostra objetos de baixo nível, como contadores de desempenho do sistema, logs
de eventos e filas de mensagens. Se uma fonte de dados não tiver provedor
ADO.NET, ela não aparecerá aqui, mas você ainda poderá usá-la no Visual Studio
conectando-se programaticamente.
Instalada com SQL Server Data Tools e visível no menu Exibir. Se não estiver lá,
acesse Programas e Recursos no Painel de Controle, localize o Visual Studio e
selecione Alterar para executar novamente o instalador depois de marcar a caixa
de seleção para SQL Server Data Tools. Use o Pesquisador de Objetos do SQL
Server para exibir bancos de dados SQL (se eles tiverem um provedor de
ADO.NET), criar novos bancos de dados, modificar esquemas, criar procedimentos
armazenados, recuperar cadeias de conexão, exibir os dados e muito mais. Os
bancos de dados SQL que não têm provedor ADO.NET instalado não aparecerão
aqui, mas você ainda pode se conectar a eles programaticamente.
Isso abre a caixa de diálogo Adicionar Conexão. Aqui, inserimos o nome da instância
SQL Server LocalDB, (localdb)\MSSqlLocalDB , que geralmente é instalada com o Visual
Studio.
Se você não tiver acesso a outro banco de dados e não vir o LocalDB instalado, poderá
instalar o LocalDB por meio do Instalador do Visual Studio, como parte da carga de
trabalho Armazenamento e processamento de dados, a carga de trabalho
Desenvolvimento da ASP.NET e da Web ou como um componente individual. Consulte
Modificar o Visual Studio.
No Visual Studio 2022 versão 17.8 e posterior, a caixa de diálogo inclui duas novas
opções (Criptografar and Certificado do Servidor Confiável) que entram na cadeia de
conexão e afetam as configurações de segurança usadas para sua conexão. Essas
opções dão suporte aos recursos de segurança mais rigorosos do driver de banco de
dados Microsoft.Data.SqlClient 4.0. Confira Alterações no comportamento de validação
de certificado e criptografia.
Se você não definir Criptografar como opcional com o Visual Studio 17.8 ou posterior,
que usa a versão 4.0 do Microsoft.Data.SqlClient, a criptografia usa obrigatório como
padrão. Essa é uma alteração significativa do comportamento em versões anteriores. Se
você não tiver um certificado válido ou não escolher o Certificado de Servidor
Confiável, você receberá a seguinte mensagem de erro:
Informações adicionais
Uma conexão com o servidor foi estabelecida com êxito, mas ocorreu um erro
durante o processo de logon. (provedor: provedor SSL, erro: 0 – a cadeia de
certificados foi emitida por uma autoridade que não é confiável.) (Microsoft SQL
Server)
Tipos de autenticação
Você pode escolher entre uma variedade de tipos de autenticação que abrangem uma
ampla gama de cenários. Para obter detalhes, confira os tipos de autenticação.
No Visual Studio 17.8 e posterior, os nomes das opções de autenticação para conexões
SQL foram atualizados para refletir a alteração de nome do Active Directory para o
Microsoft Entra.
Abrir um arquivo de banco de dados MDF
O arquivo .mdf significa Arquivo de Banco de Dados Mestre e é um banco de dados
SQL empacotado em um arquivo. Esses arquivos têm um .ldf (Arquivo de Banco de
Dados de Log) associado que contém os logs desse banco de dados. Você pode criar
bancos de dados armazenados em arquivos .mdf adicionando um item de Banco de
Dados baseado em serviço ao projeto. Confira Criar um banco de dados e adicionar
tabelas.
Se você já tiver um arquivo .mdf no projeto, clique duas vezes ou clique com o botão
direito do mouse e escolha Abrir para abri-lo no Gerenciador de Servidores.
Para abrir um arquivo .mdf que não está em seu projeto no Gerenciador de Servidores
do Visual Studio, siga estas etapas:
Alterar o provedor
Se a fonte de dados não for o que você deseja, clique no botão Alterar para escolher
uma nova fonte de dados ou um novo provedor de dados ADO.NET. O novo provedor
pode solicitar suas credenciais, dependendo de como você o configurou.
7 Observação
Se você estiver usando o Visual Studio 2022 para se conectar a provedores de
dados OLEDB ou ODBC, precisará estar ciente de que o Visual Studio 2022 agora é
um processo de 64 bits.
Isso significa que algumas das ferramentas de dados do Visual Studio não poderão
se conectar a bancos de dados OLEDB ou ODBC usando provedores de dados de
32 bits. Isso inclui o provedor de dados OLEDB de 32 bits do Microsoft Access, bem
como outros provedores de 32 bits de terceiros.
Se você planeja converter o projeto para que seja de 64 bits, precisará atualizar as
conexões de dados OLEDB e ODBC para usar provedores de dados de 64 bits.
A caixa de diálogo conectar é exibida. Escolha seu servidor local, de rede ou do SQL do
Azure, selecione um banco de dados, forneça credenciais e escolha Conectar.
Se você precisar definir outras configurações na cadeia de conexão, poderá usar o link
Avançado, que mostra todas as configurações. Por exemplo, para se conectar a um
banco de dados LocalDB baseado em um arquivo MDF, escolha Avançado e defina a
propriedade AttachDbFilename.
Depois que você terminar de configurar a conexão, o servidor e o banco de dados serão
mostrados na janela Pesquisador de Objetos do SQL Server.
A partir daí, você pode navegar no banco de dados, gravar e executar consultas, editar
dados, procedimentos e funções armazenados e executar outras ações diretamente no
Visual Studio.
Próximas etapas
Se você estiver usando o .NET Framework (não .NET Core, .NET 5 ou posterior) e o
Windows Forms ou WPF, poderá usar a janela Fontes de Dados, por exemplo, para
configurar a associação de dados para os controles nos aplicativos Windows Forms e
WPF. Confira Adicionar novas fontes de dados. Essas ferramentas foram projetadas para
permitir que você crie rapidamente aplicativos do Windows que precisam permitir que
os usuários insiram, exibam e manipulem dados.
Se você estiver usando o .NET 5 ou posterior, o .NET Core ou o ASP.NET Core, poderá
conectar seu aplicativo ao banco de dados usando os Serviços Conectados. Usando os
serviços conectados, você pode usar facilmente um banco de dados de
desenvolvimento local, hospedado pelo SQL LocalDB, o SQL Server em execução em um
contêiner ou uma instância local do SQL Server e, em seguida, fazer a transição para o
Banco de Dados SQL do Azure quando estiver pronto para implantar na nuvem. Com o
.NET 5 ou posterior, o .NET Core e o ASP.NET Core, você deve considerar o uso do Entity
Framework Core como sua estrutura de banco de dados.
Conteúdo relacionado
Ferramentas de dados do Visual Studio para .NET
Comentários
Esta página foi útil? Yes No
7 Observação
7 Observação
Este artigo fornece diretrizes para lidar com cadeias de conexão em aplicativos
Windows. No caso de aplicativos Web e de nuvem, há técnicas mais seguras
disponíveis. É possível usar os Serviços Conectados a fim de adicionar o suporte a
Secrets.json para o desenvolvimento local e, ao realizar a implantação no Azure,
migrar para o Azure Key Vault a fim de obter o armazenamento de segredos.
Confira Proteger segredos durante o desenvolvimento.
No caso dos bancos de dados que oferecem esse suporte, o uso da segurança integrada
do Windows é uma maneira mais segura de controlar o acesso a um banco de dados.
Se você optar por não usar a segurança integrada do Windows e seu banco de dados
exigir um nome de usuário e uma senha, você poderá omiti-los da cadeia de conexão,
mas seu aplicativo precisará fornecer essas informações para se conectar com êxito ao
banco de dados. Por exemplo, você pode criar uma caixa de diálogo que solicita ao
usuário essas informações e compila dinamicamente a cadeia de conexão no tempo de
execução. A segurança ainda pode ser um problema se as informações forem
interceptadas no caminho para o banco de dados.
Conteúdo relacionado
Adicionando conexões
Conectar-se a um banco de dados do
Access em aplicativos do .NET
Framework
Artigo • 04/02/2025
7 Observação
7 Observação
Se você estiver usando o Visual Studio para se conectar aos bancos de dados do
Access, precisará estar ciente de que as versões do Visual Studio anteriores ao
Visual Studio 2022 são todos processos de 32 bits. Isso significa que algumas das
ferramentas de dados no Visual Studio 2019 e anteriores só poderão se conectar
aos bancos de dados do Access usando provedores de dados de 32 bits.
Se você estiver usando o Visual Studio 2022 para se conectar aos bancos de dados
do Access, precisará estar ciente de que o Visual Studio 2022 agora é um processo
de 64 bits. Isso significa que algumas das ferramentas de dados no Visual Studio
não poderão se conectar aos bancos de dados do Access usando provedores de
dados de 32 bits.
Se você precisar manter aplicativos de 32 bits que se conectam aos bancos de
dados do Access, você ainda poderá criar e executar o aplicativo com o Visual
Studio 2022. No entanto, se você precisar usar qualquer uma das Ferramentas de
Dados do Visual Studio, como o Gerenciador de Servidores, o Assistente de Fonte
de Dados ou o Designer de Conjunto de Dados, será necessário usar uma versão
anterior do Visual Studio que ainda seja um processo de 32 bits. A última versão do
Visual Studio que foi um processo de 32 bits foi o Visual Studio 2019.
Pré-requisitos
Para usar esses procedimentos, você precisa:
Visual Studio
Um projeto do Windows Forms ou do WPF
Um banco de dados do Access (arquivo .accdb ) ou um banco de dados do Access
2000-2003 (arquivo .mdb ). Siga o procedimento que corresponde ao tipo de
arquivo.
2. Para abrir a janela Fontes de Dados, pressione Ctrl+Q, insira "dados" na caixa de
pesquisa e escolha a janela Fontes de Dados. Ou, no menu Exibir, selecione
Outras Fontes de Dados do Windows>. Ou, no teclado, pressione Shift+Alt+D.
3. Na janela Fontes de Dados, clique em Adicionar Nova Fonte de Dados.
7 Observação
Você pode obter uma caixa de diálogo informando que o arquivo de dados não
está em seu projeto atual. Selecione Sim ou Sem.
11. Selecione Avançar na página Salvar cadeia de conexão no arquivo de
Configuração de Aplicativo.
12. Selecione quais tabelas ou exibições deseja ter no conjunto de dados e selecione
Concluir.
O conjunto de dados é adicionado ao seu projeto, e as tabelas e exibições
aparecem na janela de Fontes de Dados .
Parabéns! Com uma pequena ajuda do Visual Studio, você criou uma experiência de
edição baseada em formulário para uma tabela de dados do Access.
Próximas etapas
O conjunto de dados que você acabou de criar está disponível na janela de Fontes de
Dados. Agora você pode executar qualquer uma das seguintes tarefas:
Conteúdo relacionado
Adicionar conexões
visão geral da associação de dados do WPF
Associação de dados do Windows Forms
Comentários
Esta página foi útil? Yes No
Ao trabalhar com ferramentas de dados .NET no Visual Studio, você pode adicionar
fontes de dados (objetos .NET) para conectar seu aplicativo .NET a informações em
armazenamentos de dados. Os designers do Visual Studio podem consumir a saída da
fonte de dados de modo a gerar o código clichê que associa os dados aos formulários
quando você arrasta e remove objetos de banco de dados da janela Fontes de Dados.
Uma classe que representa um serviço de rede, como serviço de dados WCF
(Windows Communication Foundation) ou um serviço REST
7 Observação
Pré-requisitos
Um aplicativo que implementa objetos Windows Forms ou Windows Presentation
Format (WPF) segmentados ao .NET Framework. Você pode criar esse tipo de
aplicativo com um modelo no Visual Studio quando sua instalação incluir a carga
de trabalho de desenvolvimento do .NET Desktop. Para obter mais informações,
confira Modificar cargas de trabalho, componentes e pacotes de idiomas do Visual
Studio.
) Importante
Dica
Essas ações acionam o Visual Studio para gerar um código clichê que mostra os dados
do armazenamento de dados. O exemplo a seguir apresenta um conjunto de dados
solto em um formulário do Windows. Se você selecionar F5 no aplicativo, os dados do
banco de dados subjacente serão exibidos nos controles do formulário.
Criar fonte de dados de banco de dados ou
arquivo de banco de dados
Você pode criar um conjunto de dados ou um modelo do Entity Framework para usar
como fonte de dados para um banco de dados ou arquivo de banco de dados com o
Assistente de Configuração de Fonte de Dados. Se sua configuração usar o Entity
Framework, primeiro crie suas Classes de entidade e, depois, use o assistente para criar
fontes de dados.
Siga estes passos para criar um conjunto de dados como fonte de dados:
Siga estas etapas para criar um modelo do Entity Framework como uma fonte de dados
com o Assistente de Modelo de Dados de Entidade:
Code First do banco de dados: cria um modelo Code First com base em um
banco de dados existente. Você pode escolher a conexão com o banco de
dados, as configurações do modelo e os objetos de banco de dados a incluir
no modelo.
Para instruções detalhadas sobre como concluir o assistente, consulte Criar classes
de modelo com o Entity Framework (C#).
5. Depois de gerar classes para o modelo, você pode criar uma fonte de dados com
base em um objeto com o Assistente de Configuração de Fonte de Dados.
Você pode criar uma fonte de dados dos seguintes tipos de serviços:
Serviços WCF
Serviços da Web
7 Observação
Os itens na janela Fontes de Dados são dependentes dos dados retornados pelo
serviço. Alguns serviços podem não fornecer informações suficientes para o
Assistente de Configuração de Fonte de Dados criar objetos associáveis. Depois
de concluir o assistente, se o serviço retornar um conjunto de dados se tipo,
nenhum item aparecerá na janela Fontes de dados. Conjuntos de dados sem tipo
não fornecem um esquema. Portanto, o assistente não tem informações suficientes
para criar a fonte de dados.
Para instruções detalhadas sobre como concluir o assistente, consulte Criar e configurar
conjuntos de dados no .NET Framework com o Visual Studio.
7 Observação
A exibição de árvore contém nós para seu projeto e para assemblies e outros
projetos referenciados pelo seu projeto.
7 Observação
Talvez seja necessário criar o projeto que contém seus objetos antes que os
objetos apareçam no modo de exibição de árvore.
Para instruções detalhadas sobre como concluir o assistente, consulte Criar e configurar
conjuntos de dados no .NET Framework com o Visual Studio.
Criar fonte de dados a partir de uma lista do
SharePoint
Você também pode usar o Assistente de Configuração de Fonte de Dados para criar
uma fonte de dados de uma lista do SharePoint. O SharePoint expõe dados por meio de
WCF Data Services, portanto, criar uma fonte de dados do SharePoint é o mesmo que
criar uma fonte de dados de um serviço.
7 Observação
Siga estes passos para criar uma fonte de dados de uma lista do SharePoint:
Para instruções detalhadas sobre como concluir o assistente, consulte Criar e configurar
conjuntos de dados no .NET Framework com o Visual Studio.
Conteúdo relacionado
Explore ferramentas de dados do Visual Studio para .NET
Criar e configurar conjuntos de dados no .NET Framework com o Visual Studio
Comentários
Esta página foi útil? Yes No
Ferramentas do LINQ to SQL no Visual
Studio
Artigo • 10/02/2025
LINQ to SQL foi a primeira tecnologia de mapeamento relacional de objeto lançada pela
Microsoft. Ele funciona bem em cenários básicos e continua a ter suporte no Visual
Studio, mas não está mais em desenvolvimento ativo. Use LINQ to SQL ao manter um
aplicativo herdado que já o está usando ou em aplicativos simples que usam o SQL
Server e não exigem mapeamento de várias tabelas. Em geral, novos aplicativos devem
usar o Entity Framework quando uma camada de mapeamento relacional de objeto é
necessária.
instaladas por padrão como parte de qualquer uma das cargas de trabalho do Visual
Studio.
Para instalar as ferramentas LINQ para SQL, inicie o instalador do Visual Studio, escolha
Modificar, selecione a guia Componentes Individuais, e depois selecione Ferramentas
LINQ para SQL na categoria Ferramentas de Código.
O Designer Relacional de Objetos fornece uma superfície de design visual para criar
associações (relações) e classes de entidade do LINQ to SQL baseadas em objetos em
um banco de dados. Em outras palavras, o designer O/R cria um modelo de objeto em
um aplicativo que se relaciona com objetos presentes em um banco de dados. Ele
também gera um DataContext fortemente tipado que envia e recebe dados entre as
classes de entidade e o banco de dados. O Designer Relacional de Objetos também
fornece funcionalidade para mapear procedimentos armazenados e funções para
métodos DataContext para retornar dados e preencher classes de entidade. Por fim, o
Designer Relacional de Objetos permite criar relações de herança entre classes de
entidade.
O Visual Studio cria um arquivo .dbml e o adiciona à sua solução. Este é o arquivo de
mapeamento XML e seus arquivos de código relacionados.
Quando você seleciona o arquivo .dbml , o Visual Studio exibe a superfície do Designer
O/R, que permite criar visualmente o modelo. A ilustração a seguir mostra o designer
após as tabelas Northwind Customers e Orders terem sido arrastadas do Explorador de
Servidores . Observe a relação entre as tabelas.
) Importante
7 Observação
Conteúdo de referência
System.Linq
System.Data.Linq
Consulte também
LINQ to SQL (.NET Framework)
Perguntas frequentes (.NET Framework)
Comentários
Esta página foi útil? Yes No
7 Observação
Você não pode reverter os métodos de DataContext que tem um tipo de retorno
definida como uma classe de entidade para retornar o tipo gerado
automaticamente usando a janela Propriedades. Para reverter um método de
DataContext para retornar um tipo gerado automaticamente, você deve arraste o
objeto de banco de dados original no Designer Relacional de Objetos novamente.
7 Observação
Seu computador pode mostrar diferentes nomes ou locais para alguns dos
elementos de interface do usuário do Visual Studio neste artigo. Você pode estar
usando outra edição do Visual Studio ou outras configurações de ambiente. Para
obter mais informações, confira Personalizar o IDE.
Conteúdo relacionado
Ferramentas do LINQ to SQL no Visual Studio
LINQ to SQL
Métodos DataContext (Designer Relacional de Objetos)
Como criar métodos DataContext mapeados para procedimentos armazenados e
funções (Designer Relacional de Objetos)
Criar métodos DataContext mapeados
para procedimentos armazenados e
funções (Designer Relacional de
Objetos)
Artigo • 12/01/2024
7 Observação
7 Observação
7 Observação
Seu computador pode mostrar diferentes nomes ou locais para alguns dos
elementos de interface do usuário do Visual Studio neste artigo. Você pode estar
usando outra edição do Visual Studio ou outras configurações de ambiente. Para
obter mais informações, confira Personalizar o IDE.
7 Observação
Para obter informações sobre como alterar o tipo de retorno de existentes
DataContext métodos, consulte como: Alterar o tipo de retorno de um método
DataContext (Designer Relacional de Objetos).
Conteúdo relacionado
Ferramentas do LINQ to SQL no Visual Studio
Métodos DataContext (Designer Relacional de Objetos)
Passo a passo: criando classes LINQ to SQL
LINQ to SQL
Introdução a LINQ no Visual Basic
LINQ em C#
Configurar a herança usando o Designer
Relacional de Objetos
Artigo • 09/04/2024
Por exemplo, pense em uma tabela Persons que contém todos os empregados por uma
empresa. Algumas pessoas são funcionários e algumas pessoas são gerentes. A tabela
Persons contém uma coluna chamada EmployeeType que tenha um valor de 1 para
Criar um modelo de objeto que usar herança (e corresponde a dados relacionais) pode
ser um pouco confuso. O procedimento a seguir descreve as etapas necessárias para
configurar a herança com o Designer Relacional de Objetos. Seguir etapas genéricas
sem se referir a uma tabela existente e colunas pode ser difícil, desse modo, é fornecido
um passo a passo que usa dados. Para instruções passo a passo detalhadas para
configurar a herança usando o Relational Designer, consulte passo a passo: Criando o
LINQ to SQL classes por meio de herança de tabela única (O/R Designer).
2. Arraste a tabela que você deseja usar como a classe base no Designer Relacional
de Objetos.
5. Em cada classe, excluir todas as propriedades do objeto que você não deseja que
apareça e que não são usadas para associações. Você receberá um erro se tentar
excluir propriedades de objeto usadas para associações: The property <property
name> cannot be deleted because it is participating in the association
<association name>.
7 Observação
9. Defina a propriedade Base Class Discriminator Value como o valor que designa o
registro como um tipo base. (Esse é o valor que é armazenado na coluna
discriminatória e é usado para designar a classe base.)
Conteúdo relacionado
Ferramentas do LINQ to SQL no Visual Studio
Passo a passo: criando classes LINQ to SQL (Designer Relacional de Objetos)
Acessando dados no Visual Studio
LINQ to SQL
Passo a passo: criando classes LINQ to SQL usando a herança de tabela única
(Designer Relacional de Objetos)
Noções básicas de herança (Visual Basic)
Herança
Comentários
Esta página foi útil? Yes No
Criar classes LINQ to SQL mapeadas
para tabelas e exibições (Designer
Relacional de Objetos)
Artigo • 09/04/2024
As classes LINQ to SQL mapeadas para tabelas de banco de dados e exibições são
chamadas de classes de entidade. A classe de entidade mapeia para um registro,
enquanto as propriedades individuais de uma classe de entidade mapeiam para as
colunas individuais que compõem um registro. Criar classes de entidade baseadas em
tabelas de banco de dados ou exibições arrastando tabelas ou exibições do
Gerenciador de Servidores ou do Gerenciador de Banco de Dados para as ferramentas
LINQ to SQL no Visual Studio. O Designer Relacional de Objetos gera as classes e aplica
os atributos específicos do LINQ to SQL para ativar a funcionalidade do LINQ to SQL (os
recursos de comunicação e edição de dados do DataContext). Para obter informações
detalhadas sobre classes LINQ to SQL, consulte o Modelo de objeto LINQ to SQL.
7 Observação
Por padrão, o runtime do LINQ to SQL cria a lógica para salvar as alterações de uma
classe de entidade atualizável de volta para o banco de dados. Essa lógica é baseada no
esquema da tabela (as definições de coluna e informações de chave primária). Se você
não quiser esse comportamento, poderá configurar uma classe de entidade para usar os
procedimentos armazenados para executar inserções, atualizações e exclusões, em vez
de usar o comportamento padrão de runtime do LINQ to SQL. Para obter mais
informações, confira Como atribuir procedimentos armazenados para executar
atualizações, inserções e exclusões (Designer Relacional de Objetos).
7 Observação
Seu computador pode mostrar diferentes nomes ou locais para alguns dos
elementos de interface do usuário do Visual Studio neste artigo. Você pode estar
usando outra edição do Visual Studio ou outras configurações de ambiente. Para
obter mais informações, confira Personalizar o IDE.
2. Para abrir a janela Fontes de Dados, no menu Dados, selecione Mostrar Fontes de
Dados.
3. Na janela Fontes de Dados, clique em Adicionar Nova Fonte de Dados.
7 Observação
Conteúdo relacionado
Ferramentas do LINQ to SQL no Visual Studio
Passo a passo: criando classes LINQ to SQL (Designer Relacional de Objetos)
Métodos DataContext (Designer Relacional de Objetos)
Como criar métodos DataContext mapeados para procedimentos armazenados e
funções (Designer Relacional de Objetos)
Modelo de objeto LINQ to SQL
Passo a passo: personalizando a inserção, a atualização e o comportamento de
exclusão de classes de entidade
Como criar uma associação (relação) entre classes LINQ to SQL (Designer
Relacional de Objetos)
Comentários
Esta página foi útil? Yes No
Estender o código gerado pelo Designer
Relacional de Objetos
Artigo • 30/07/2024
O código gerado por O/R Designer é regenerado quando alterações são feitas a classes
de entidade e outros objetos ocorrem no designer. Devido a essa regeneração de
código, qualquer código que você adicionar ao código gerado seja substituído
normalmente quando o código de regenerados de designer. O O/R Designer fornece a
capacidade de gerar os arquivos parciais da classe em que você pode adicionar código
que não é substituído. Um exemplo de adicionar seu próprio código para o código
gerado pelo O/R Designer está adicionando validação de dados para as classes LINQ to
SQL (entidade). Para obter mais informações, consulte Como adicionar validação a
classes de entidade.
7 Observação
Seu computador pode mostrar diferentes nomes ou locais para alguns dos
elementos de interface do usuário do Visual Studio neste artigo. Você pode estar
usando outra edição do Visual Studio ou outras configurações de ambiente. Para
obter mais informações, confira Personalizar o IDE.
O editor de códigos abre com uma classe parcial para a classe de entidade
selecionada.
Confira também
Ferramentas do LINQ to SQL no Visual Studio
Passo a passo: criando classes LINQ to SQL (Designer Relacional de Objetos)
LINQ to SQL
Comentários
Esta página foi útil? Yes No
Criar uma associação entre as classes
LINQ to SQL (Designer Relacional de
Objetos)
Artigo • 12/01/2024
As associações entre classes de entidade no LINQ to SQL são análogas às relações entre
tabelas em um banco de dados. Você pode criar associações entre classes de entidade
usando a caixa de diálogo Editor de Associação.
Você deve selecionar uma classe pai e uma classe filho ao usar a caixa de diálogo Editor
de Associação para criar uma associação. A classe pai é a classe de entidade que
contém a chave primária; a classe filho é a classe de entidade que contém a chave
estrangeira. Por exemplo, se as classes de entidade fossem criadas que mapeiam para as
tabelas Northwind Customers e Orders , a classe Customer seria a classe pai e a classe
Order seria a classe filho.
7 Observação
Propriedades de associação
Depois de criar uma associação, quando você seleciona a associação no Designer
Relacional de Objetos, há algumas propriedades configuráveis na janela Propriedades.
(A associação é a linha entre as classes relacionadas.) A tabela a seguir fornece
descrições para as propriedades de uma associação.
ノ Expandir a tabela
Propriedade Descrição
Propriedade Especifica se deve ser criada uma propriedade no pai que é uma coleção ou
Filho referência para os registros filho na parte da chave estrangeira da associação.
Por exemplo, na associação entre Customer e Order , se a Propriedade Filho
Propriedade Descrição
for definida como True, uma propriedade chamada Orders será criada na
classe pai.
Propriedade A propriedade na classe filho que referencia a classe pai associada. Por
Parent exemplo, na associação entre Customer e Order , uma propriedade chamada
Customer que referencia o cliente associado para um pedido é criada na classe
Order .
Conteúdo relacionado
Ferramentas do LINQ to SQL no Visual Studio
Instruções passo a passo: criar classes LINQ to SQL
LINQ to SQL
Métodos DataContext (Designer Relacional de Objetos)
Como representar chaves primárias
Adicionar validação a classes de
entidade
Artigo • 12/01/2024
7 Observação
7 Observação
Este tópico fornece as etapas básicas para adicionar validação a classes de entidade
usando o O/R Designer. Como pode ser difícil seguir essas etapas genéricas sem se
referir a uma classe específica de entidade, um explicação passo a passo que usa os
dados reais é fornecida.
Adicionar validação para alterações ao valor em
uma coluna específica
Este procedimento mostra como validar dados quando o valor em uma coluna é
alterado. Uma vez que a validação é executada na definição de classe (em vez de na
interface do usuário), será lançada uma exceção se o valor causar a falha da validação.
Implementar manipulação de erro para o código em seu aplicativo que tenta alterar os
valores de coluna.
7 Observação
Seu computador pode mostrar diferentes nomes ou locais para alguns dos
elementos de interface do usuário do Visual Studio neste artigo. Você pode estar
usando outra edição do Visual Studio ou outras configurações de ambiente. Para
obter mais informações, confira Personalizar o IDE.
O editor de códigos abre com uma classe parcial para a classe de entidade
selecionada.
d. Adicione o seguinte código para primeiro verificar que um valor está inserido e
para garantir em que o valor inserido para a coluna é aceitável para seu
aplicativo. O argumento de value contém o valor proposto, para adicionar a
lógica para confirmar que é um valor válido:
VB
If value.HasValue Then
' Add code to ensure that the value is acceptable.
' If value < 1 Then
' Throw New Exception("Invalid data!")
' End If
End If
C#
7 Observação
2. Clique com o botão direito do mouse em uma área vazia no Designer Relacional
de Objetos e clique em Exibir Código.
b. Clique em UpdateENTITYCLASSNAME.
VB
C#
Conteúdo relacionado
Ferramentas do LINQ to SQL no Visual Studio
Validando dados
LINQ to SQL (.NET Framework)
Passo a passo: personalizar a inserção, a
atualização e o comportamento de
exclusão de classes de entidade
Artigo • 04/05/2023
Aplica-se a: Visual Studio Visual Studio para Mac Visual Studio Code
7 Observação
As ferramentas LINQ to SQL no Visual Studio fornecem uma superfície de design visual
para criar e editar classes LINQ to SQL (classes de entidade) baseadas em objetos em
um banco de dados. Usando LINQ to SQL, você pode usar a tecnologia LINQ para
acessar bancos de dados SQL. Para saber mais, confira LINQ (consulta integrada à
linguagem).
Por padrão, a lógica para executar atualizações é fornecida pelo runtime do LINQ to
SQL. O runtime cria instruções padrão Insert , Update e Delete com base no esquema
da tabela (as definições de coluna e as informações da chave primária). Quando você
não deseja usar o comportamento padrão, poderá configurar o comportamento de
atualização e designar procedimentos armazenados específicos para executar as
inserções, as atualizações e as exclusões necessárias para trabalhar com os dados no
banco de dados. Você também pode fazer isso quando o comportamento padrão não é
gerado, por exemplo, quando as classes de entidade mapeiam para as exibições. Além
disso, você pode substituir o comportamento de atualização padrão quando o banco de
dados exige acesso à tabela por meio dos procedimentos armazenados. Para obter mais
informações, consulte Personalizando operações usando procedimentos armazenados.
7 Observação
Essa explicação passo a passo exige a disponibilidade dos procedimentos
armazenados InsertCustomer, UpdateCustomer e DeleteCustomer para o banco
de dados Northwind.
Essa explicação passo a passo fornece as etapas que você deve seguir para substituir o
comportamento padrão de runtime LINQ to SQL para salvar dados de volta para um
banco de dados usando procedimentos armazenados.
Durante essa explicação passo a passo, é ensinado como realizar as seguintes tarefas:
Crie uma classe de entidade que está mapeada para a tabela Customers
Northwind.
Crie uma fonte de dados de objeto que referencia a classe Customer LINQ to SQL.
Crie um Windows Form que contém um DataGridView que está associado à classe
Customer .
Pré-requisitos
Este passo a passo usa o SQL Server Express LocalDB e o banco de dados de exemplo
da Northwind.
1. Se você não tiver SQL Server Express LocalDB, instale-o por meio da página de
download do SQL Server Express ou usando o Instalador do Visual Studio. No
Instalador do Visual Studio, você pode instalar o SQL Server Express LocalDB
como parte da carga de trabalho Armazenamento e processamento de dados ou
como um componente individual.
7 Observação
Seu computador pode mostrar diferentes nomes ou locais para alguns dos
elementos de interface do usuário do Visual Studio neste artigo. Você pode estar
usando outra edição do Visual Studio ou outras configurações de ambiente. Para
obter mais informações, confira Personalizar o IDE.
7. Clique em Adicionar.
Uma classe de entidade chamada Customer é criada. Ela tem propriedades que
correspondem às colunas na tabela Customers. A classe de entidade é chamada de
Customer (e não Customers) porque representa um único cliente da tabela
Customers.
7 Observação
4. Para abrir a janela Fontes de Dados, no menu Dados, selecione Mostrar Fontes de
Dados.
7 Observação
7 Observação
C#
C#
C#
C#
customerBindingSource.DataSource
= northwindDataContext1.Customers;
C#
C#
northwindDataContext1.SubmitChanges();
6. Clique nas reticências (…) ao lado de Usar runtime para abrir a caixa de diálogo
Configurar Comportamento.
7. Selecione Personalizar.
7 Observação
7 Observação
Embora isso não seja um problema para essa explicação passo a passo específica,
vale observar que o LINQ to SQL manipula automaticamente os valores gerados
por banco de dados para as colunas identidade (incremento automático),
rowguidcol (GUID gerado por banco de dados) e carimbo de data/hora durante
inserções e atualizações. Os valores gerados pelo banco de dados em outros tipos
de coluna resultarão inesperadamente em um valor nulo. Para retornar os valores
gerados pelo banco de dados, você deve definir IsDbGenerated manualmente
como true e AutoSync como um dos seguintes: AutoSync.Always,
AutoSync.OnInsert ou AutoSync.OnUpdate.
Testar o aplicativo
Execute o aplicativo novamente para verificar se o procedimento armazenado
UpdateCustomers atualiza corretamente o registro do cliente no banco de dados.
1. Pressione F5.
5. Feche o formulário.
7. Exclua o novo registro que você criou na etapa 3 para testar o comportamento de
exclusão.
9. Feche o formulário.
10. Pressione F5 e verifique se o registro excluído foi removido do banco de dados.
7 Observação
Próximas etapas
Dependendo dos seus requisitos do aplicativo, há várias etapas que você pode querer
realizar depois de criar as classes de entidade do LINQ to SQL. Entre algumas das
melhorias que você pode fazer neste aplicativo estão:
Adicionar consultas LINQ para filtrar dados. Para obter informações, consulte
Introdução a consultas de LINQ (C#).
Confira também
Ferramentas do LINQ to SQL no Visual Studio
Métodos DataContext
Como atribuir procedimentos armazenados para executar atualizações, inserções e
exclusões
LINQ to SQL
Consultas do LINQ to SQL
Como atribuir procedimentos
armazenados para executar
atualizações, inserções e exclusões
(Designer Relacional de Objetos)
Artigo • 09/03/2023
Aplica-se a: Visual Studio Visual Studio para Mac Visual Studio Code
7 Observação
7 Observação
7 Observação
Seu computador pode mostrar diferentes nomes ou locais para alguns dos
elementos de interface do usuário do Visual Studio neste artigo. Você pode estar
usando outra edição do Visual Studio ou outras configurações de ambiente. Para
obter mais informações, confira Personalizar o IDE.
6. Clique nas reticências (...) ao lado das palavras Usar Runtime para abrir a caixa de
diálogo Configurar Comportamento.
7. Selecione Personalizar.
7 Observação
7 Observação
Para voltar a usar a lógica padrão em runtime para atualizações, clique nas reticências
ao lado do comando Insert, Update ou Delete, na janela Propriedades, e selecione Usar
runtime na caixa de diálogo Configurar Comportamento.
Confira também
Ferramentas do LINQ to SQL no Visual Studio
Métodos DataContext
LINQ to SQL (.NET Framework)
Operações de inserção, atualização e exclusão (.NET Framework)
Ligar e desligar a pluralização (Designer
Relacional de Objetos)
Artigo • 12/01/2024
Por padrão, quando você arrasta os objetos de base de dados que têm nomes que
terminam em s ou em ies de Gerenciador de Servidores ou Gerenciador de Banco de
Dados em Ferramentas de LINQ to SQL no Visual Studio, os nomes das classes de
entidade gerados são alterados de plural para singular. Isso é feito a representa mais
precisamente o fato que a classe instanciado de entidade mapeia para um único
registro de dados. Por exemplo, adicione uma tabela Customers para os resultados de
Designer Relacional de Objetos em uma classe de entidade chamada Customer porque
a classe conterá dados para apenas um cliente.
7 Observação
Pluralization está ativada por padrão somente na versão de língua inglesa do Visual
Studio.
7 Observação
Seu computador pode mostrar diferentes nomes ou locais para alguns dos
elementos de interface do usuário do Visual Studio neste artigo. Você pode estar
usando outra edição do Visual Studio ou outras configurações de ambiente. Para
obter mais informações, confira Personalizar o IDE.
7 Observação
Conteúdo relacionado
Ferramentas do LINQ to SQL no Visual Studio
LINQ to SQL
Acessando dados no Visual Studio
Criar e configurar conjuntos de dados
no .NET Framework usando o Visual
Studio
Artigo • 04/02/2025
7 Observação
Você pode criar uma classe do tipo DataSet no Visual Studio em tempo de
desenvolvimento usando o Assistente de Configuração da Fonte de Dados . Para obter
informações sobre como criar conjuntos de dados programaticamente, consulte Criando
um conjunto de dados (ADO.NET).
Pré-requisitos
um projeto do .NET Framework (não .NET Core ou .NET 5 ou posterior)
SQL Server Express LocalDB. Se você não tiver o SQL Server Express LocalDB,
poderá instalá-lo na página de download do SQL Server .
7. Clique em Finalizar.
O conjunto de dados aparece como um nó no Gerenciador de Soluções.
3. Adicione colunas para definir sua tabela de dados. Clique com o botão direito do
mouse na tabela e escolha Adicionar>Coluna. Use a janela Propriedades para
definir o tipo de dados da coluna e uma chave, se necessário.
Conteúdo relacionado
Ferramentas de conjunto de dados no Visual Studio
relações em conjuntos de dados
Atualização hierárquica
preencha conjuntos de dados usando TableAdapters
Comentários
Esta página foi útil? Yes No
Aplica-se a: Visual Studio Visual Studio para Mac Visual Studio Code
7 Observação
Ele pode impor restrições para integridade referencial, como excluir registros filho
relacionados quando você exclui um registro pai.
Uma restrição exclusiva, que garante que uma coluna na tabela não contenha
duplicatas.
Uma restrição de chave estrangeira, que pode ser usada para manter a integridade
referencial entre uma tabela pai e filho em um conjunto de dados.
Regra de Ação
restrição
de chave
estrangeira
SetNull Os registros filho não são excluídos, mas a chave estrangeira nos registros filho é
definida como DBNull. Com essa configuração, os registros filho podem ser
deixados como "órfãos", ou seja, eles não têm relação com os registros pai.
Observação: o uso dessa regra pode resultar em dados inválidos na tabela filho.
SetDefault A chave estrangeira nos registros filho relacionados é definida como seu valor
padrão (conforme estabelecido pela propriedade DefaultValue da coluna).
None Nenhuma alteração é feita nos registros filho relacionados. Com essa configuração,
os registros filho podem conter referências a registros pai inválidos.
Seu computador pode mostrar diferentes nomes ou locais para alguns dos
elementos de interface do usuário do Visual Studio neste artigo. Você pode estar
usando outra edição do Visual Studio ou outras configurações de ambiente. Para
obter mais informações, confira Personalizar o IDE.
3. Selecione a tabela pai na caixa Tabela Pai. A tabela pai contém registros no lado
"um" de uma relação um para muitos.
4. Verifique se a tabela filho correta é exibida na caixa Tabela Filho. A tabela filho
contém registros no lado "muitos" de uma relação um para muitos.
5. Digite um nome para a relação na caixa Nome ou deixe o nome padrão com base
nas tabelas selecionadas. Esse é o nome do objeto DataRelation real no código.
6. Selecione as colunas que ingressam nas tabelas nas listas Colunas de Chave e
Colunas de Chave Estrangeira.
9. Defina as regras a serem impostas quando você estiver fazendo alterações nos
registros nessas tabelas. Para obter mais informações, consulte Rule.
10. Clique em OK para criar a relação. Uma linha da relação aparece no designer entre
as duas tabelas.
Confira também
Criar e configurar conjuntos de dados no Visual Studio
Passo a passo: criar um conjunto de
dados para aplicativos do .NET
Framework usando o Designer de
Conjunto de Dados
Artigo • 22/04/2024
7 Observação
Neste passo a passo, você criará um conjunto de dados usando o Designer de Conjunto
de Dados. O artigo leva você pelo processo de criação de um novo projeto e a adição
de um novo item Conjunto de Dados a ele. Você aprenderá a criar tabelas com base em
tabelas em um banco de dados sem usar um assistente.
Pré-requisitos
Para concluir este tutorial, você precisa da carga de trabalho de Desenvolvimento de
área de trabalho do .NET (para a janela Fontes de dados) e da carga de trabalho
Armazenamento e processamento de dados instaladas no Visual Studio. Para instalá-
las, abra Instalador do Visual Studio e escolha Modificar (ou Mais>Modificar) ao lado
da versão do Visual Studio que você deseja modificar. Confira Modificar o Visual Studio.
Este passo a passo usa o SQL Server Express LocalDB e o banco de dados de exemplo
da Northwind.
1. Se você não tiver SQL Server Express LocalDB, instale-o por meio da página de
download do SQL Server Express ou usando o Instalador do Visual Studio. No
Instalador do Visual Studio, o SQL Server Express LocalDB pode ser instalado como
parte da carga de trabalho Armazenamento e processamento de dados ou como
um componente individual.
Conteúdo relacionado
Criar e configurar conjuntos de dados no Visual Studio
Associar controles do Windows Forms a dados no Visual Studio
Associar controles a dados no Visual Studio
Validar os dados
Comentários
Esta página foi útil? Yes No
Passo a passo: criar uma DataTable para
aplicativos do .NET Framework usando
o Designer de Conjunto de Dados
Artigo • 05/11/2024
7 Observação
Este passo a passo explica como criar um DataTable (sem um TableAdapter) usando o
Designer de Conjunto de Dados. Para obter informações sobre como criar tabelas de
dados que incluem TableAdapters, confira Criar e configurar TableAdapters.
Pré-requisitos
Para concluir este passo a passo, você precisa das cargas de trabalho de
Desenvolvimento de área de trabalho do .NET e Armazenamento de dados e
processamento instaladas no Visual Studio. Para instalá-las, abra Instalador do Visual
Studio e escolha Modificar (ou Mais>Modificar) ao lado da versão do Visual Studio que
você deseja modificar. Confira Modificar o Visual Studio.
3. Escolha Adicionar.
SongTitle : System.String
Artist : System.String
Genre : System.String
Para definir a chave primária, clique com o botão direito do mouse na coluna SongID e
selecione Definir Chave Primária. Um ícone de chave aparece ao lado da coluna
SongID.
Salvar o projeto
Para salvar o projeto DataTableWalkthrough, no menu Arquivo, selecione Salvar Tudo.
Conteúdo relacionado
Criar e configurar conjuntos de dados no Visual Studio
Associar controles a dados no Visual Studio
Validando dados
Comentários
Esta página foi útil? Yes No
Aplica-se a: Visual Studio Visual Studio para Mac Visual Studio Code
7 Observação
TableAdapters são criados para você quando você executa uma das seguintes ações:
7 Observação
Seu computador pode mostrar diferentes nomes ou locais para alguns dos
elementos de interface do usuário do Visual Studio neste artigo. Você pode estar
usando outra edição do Visual Studio ou outras configurações de ambiente. Para
obter mais informações, confira Personalizar o IDE.
7 Observação
Gere instruções INSERT, UPDATE e DELETE com base na instrução SELECT definida
na página Gerar instruções SQL
Usar simultaneidade otimista
Especifique se deseja atualizar a tabela de dados depois que as instruções INSERT
e UPDATE forem executadas
O exemplo a seguir mostra como chamar uma consulta adicional chamada FillByCity :
CustomersTableAdapter.FillByCity(NorthwindDataSet.Customers, "Seattle")
2. Se você estiver criando uma nova consulta, arraste um objeto Consulta da guia
Conjunto de Dados da Caixa de Ferramentas para um DataTable ou selecione
Adicionar Consulta no menu de atalho do TableAdapter. Você também pode
arrastar um objeto Query para uma área vazia do Designer de Conjunto de
Dados, que cria um TableAdapter sem um DataTable associado. Essas consultas só
podem retornar valores únicos (escalares) ou executar comandos UPDATE, INSERT
ou DELETE no banco de dados.
7 Observação
Usar instruções SQL permite digitar uma instrução SQL para selecionar os
dados do banco de dados.
7 Observação
Forneça uma consulta que execute a tarefa desejada, por exemplo, SELECT
COUNT(*) AS CustomerCount FROM Customers .
7 Observação
Conteúdo relacionado
Preencher conjuntos de dados usando TableAdapters
Criar consultas parametrizadas do
TableAdapter em aplicativos do .NET
Framework
Artigo • 08/08/2024
7 Observação
Uma consulta parametrizada retorna dados que atendem às condições de uma cláusula
WHERE dentro da consulta. Por exemplo, você pode parametrizar uma lista de clientes
para exibir apenas clientes em uma determinada cidade, adicionando WHERE City =
@City ao final da instrução SQL que retorna uma lista de clientes.
7 Observação
or
7 Observação
4. Digite um nome na caixa Nome da nova consulta ao criar uma nova consulta.
or
6. Selecione OK.
SQL
C#
C#
ordersTableAdapter.FillByShippedDate(northwindDataSet.Orders, null);
Conteúdo relacionado
Preencher conjuntos de dados usando TableAdapters
Comentários
Esta página foi útil? Yes No
Acessar diretamente o banco de dados
com um TableAdapter em aplicativos do
.NET Framework
Artigo • 12/01/2024
7 Observação
Se você não quiser criar esses métodos diretos, defina a propriedade TableAdapter
GenerateDbDirectMethods como false na janela Propriedades. Se alguma consulta for
7 Observação
C#
C#
NorthwindDataSetTableAdapters.RegionTableAdapter regionTableAdapter
=
new NorthwindDataSetTableAdapters.RegionTableAdapter();
regionTableAdapter.Insert(5, "NorthWestern");
7 Observação
C#
C#
NorthwindDataSetTableAdapters.RegionTableAdapter regionTableAdapter
=
new NorthwindDataSetTableAdapters.RegionTableAdapter();
7 Observação
C#
C#
NorthwindDataSetTableAdapters.RegionTableAdapter regionTableAdapter
=
new NorthwindDataSetTableAdapters.RegionTableAdapter();
regionTableAdapter.Delete(5, "NorthWestern");
Conteúdo relacionado
Preencher conjuntos de dados usando TableAdapters
Desativar restrições ao preencher um
conjunto de dados em aplicativos do
.NET Framework
Artigo • 05/11/2024
7 Observação
7 Observação
C#
dataSet1.EnforceConstraints = false;
// Perform some operations on the dataset
dataSet1.EnforceConstraints = true;
Conteúdo relacionado
Preencher conjuntos de dados usando TableAdapters
Relacionamentos em conjuntos de dados
Comentários
Esta página foi útil? Yes No
7 Observação
Classes parciais permitem que o código de uma classe específica seja dividido entre
vários arquivos físicos. Para obter mais informações, confira Parcial ou partial (tipo).
DatasetName + TableAdapters ).
3. Selecione Adicionar.
C#
namespace NorthwindDataSetTableAdapters
{
public partial class CustomersTableAdapter
{
// Add user code here. For example:
public override string ToString()
{
return "Overridden in the partial class.";
}
}
}
Conteúdo relacionado
Preencher conjuntos de dados usando TableAdapters
Ler dados XML em um conjunto de
dados em aplicativos .NET Framework
Artigo • 19/03/2024
7 Observação
O ADO.NET fornece métodos simples para trabalhar com dados XML. Neste passo a
passo, você cria um aplicativo do Windows que carrega dados XML em um conjunto de
dados. Em seguida, o conjunto de dados é exibido em um controle DataGridView. Por
fim, um esquema XML baseado no conteúdo do arquivo XML é exibido em uma caixa
de texto.
Pré-requisitos
Para concluir este tutorial, você precisa do Visual Studio com as seguintes cargas de
trabalho instaladas:
XML
<Authors_Table>
<authors>
<au_id>172-32-1176</au_id>
<au_lname>White</au_lname>
<au_fname>Johnson</au_fname>
<phone>408 496-7223</phone>
<address>10932 Bigge Rd.</address>
<city>Menlo Park</city>
<state>CA</state>
<zip>94025</zip>
<contract>true</contract>
</authors>
<authors>
<au_id>213-46-8915</au_id>
<au_lname>Green</au_lname>
<au_fname>Margie</au_fname>
<phone>415 986-7020</phone>
<address>309 63rd St. #411</address>
<city>Oakland</city>
<state>CA</state>
<zip>94618</zip>
<contract>true</contract>
</authors>
<authors>
<au_id>238-95-7766</au_id>
<au_lname>Carson</au_lname>
<au_fname>Cheryl</au_fname>
<phone>415 548-7723</phone>
<address>589 Darwin Ln.</address>
<city>Berkeley</city>
<state>CA</state>
<zip>94705</zip>
<contract>true</contract>
</authors>
<authors>
<au_id>267-41-2394</au_id>
<au_lname>Hunter</au_lname>
<au_fname>Anne</au_fname>
<phone>408 286-2428</phone>
<address>22 Cleveland Av. #14</address>
<city>San Jose</city>
<state>CA</state>
<zip>95128</zip>
<contract>true</contract>
</authors>
<authors>
<au_id>274-80-9391</au_id>
<au_lname>Straight</au_lname>
<au_fname>Dean</au_fname>
<phone>415 834-2919</phone>
<address>5420 College Av.</address>
<city>Oakland</city>
<state>CA</state>
<zip>94609</zip>
<contract>true</contract>
</authors>
</Authors_Table>
Um controle DataGridView
Um controle TextBox
ノ Expandir a tabela
ScrollBars Vertical
C#
C#
AuthorsDataSet.ReadXml(filePath);
dataGridView1.DataSource = AuthorsDataSet;
dataGridView1.DataMember = "authors";
}
C#
C#
Testar o formulário
Agora, é possível testar o formulário para garantir que ele se comporta da forma
esperada.
Próximas etapas
Este passo a passo ensina os conceitos básicos da leitura de um arquivo XML em um
conjunto de dados, bem como da criação de um esquema baseado no conteúdo do
arquivo XML. Estas são algumas tarefas que você pode realizar em seguida:
Conteúdo relacionado
Acessar dados no Visual Studio
Ferramentas XML no Visual Studio
Comentários
Esta página foi útil? Yes No
Editar dados em conjuntos de dados
Artigo • 04/05/2023
Aplica-se a: Visual Studio Visual Studio para Mac Visual Studio Code
7 Observação
Você edita dados em tabelas de dados da mesma maneira que edita dados em uma
tabela em qualquer banco de dados. O processo pode incluir a inserção, a atualização e
a exclusão de registros na tabela. Em um formulário associado a dados, você pode
especificar quais campos podem ser editados pelo usuário. Nesses casos, a
infraestrutura de associação de dados cuida de todo o controle de alterações para que
as alterações possam ser enviadas de volta para o banco de dados posteriormente. Se
você faz edições nos dados programaticamente e pretende enviar essas alterações de
volta para o banco de dados, use os objetos e métodos que fazem o controle de
alterações para você.
Além de alterar os dados reais, você também pode consultar um DataTable para
retornar linhas de dados específicas. Por exemplo, você pode consultar linhas
individuais, versões específicas de linhas (originais e propostas), linhas que foram
alteradas ou linhas com erros.
Se você não souber o índice da linha que deseja editar, use o método FindBy para
pesquisar pela chave primária:
C#
C#
NorthwindDataSet.CustomersRow customersRow =
northwindDataSet1.Customers.FindByCustomerID("ALFKI");
Se você souber o índice de linha, poderá acessar e editar linhas da seguinte maneira:
C#
C#
Para adicionar manualmente novos registros a um conjunto de dados, crie uma linha de
dados chamando o método em DataTable. Em seguida, adicione a linha à coleção
DataRow (Rows) do DataTable:
C#
C#
NorthwindDataSet.CustomersRow newCustomersRow =
northwindDataSet1.Customers.NewCustomersRow();
newCustomersRow.CustomerID = "ALFKI";
newCustomersRow.CompanyName = "Alfreds Futterkiste";
northwindDataSet1.Customers.Rows.Add(newCustomersRow);
Para manter as informações necessárias para que o conjunto de dados envie
atualizações para a fonte de dados, use o método Delete para remover linhas em uma
tabela de dados. Por exemplo, se o aplicativo usa um TableAdapter (ou DataAdapter), o
método Update do TableAdapter exclui linhas no banco de dados que têm um RowState
de Deleted.
Se o aplicativo não precisa enviar atualizações de volta para uma fonte de dados, é
possível remover registros acessando diretamente a coleção de linhas de dados
(Remove).
Esse método não remove o registro fisicamente. Em vez disso, ele marca o registro
para exclusão.
7 Observação
O exemplo a seguir mostra como chamar o método Delete para marcar a primeira linha
na tabela Customers como excluída:
C#
C#
northwindDataSet1.Customers.Rows[0].Delete();
Cada linha de dados alterada contém várias versões dessa linha (DataRowVersion),
a versão original (antes das alterações) e a versão atual (após as alterações). No
período em que uma alteração está pendente (o período em que você pode
responder ao evento RowChanging), uma terceira versão — a versão proposta —
também fica disponível.
C#
C#
if (northwindDataSet1.HasChanges())
{
// Changed rows were detected, add appropriate code.
}
else
{
// No changed rows were detected, add appropriate code.
}
Determinar o tipo de alterações
Você também pode verificar quais tipo de alterações foram feitas em um conjunto de
dados passando um valor da enumeração DataRowState para o método HasChanges.
C#
C#
if (northwindDataSet1.HasChanges(DataRowState.Added))
{
// New rows have been added to the dataset, add appropriate code.
}
else
{
// No new rows have been added to the dataset, add appropriate code.
}
C#
C#
Confira também
Ferramentas de conjunto de dados no Visual Studio
Validar dados em conjuntos de dados
Artigo • 04/05/2023
Aplica-se a: Visual Studio Visual Studio para Mac Visual Studio Code
7 Observação
Você pode confirmar se os dados que estão sendo gravados em um conjunto de dados
são válidos criando verificações de validação no próprio conjunto de dados. O conjunto
de dados pode verificar os dados independentemente de como a atualização está
sendo executada, seja diretamente por controles em um formulário, dentro de um
componente ou de alguma outra maneira. Como o conjunto de dados faz parte do
aplicativo (ao contrário do back-end do banco de dados), é um local lógico para
compilar a validação específica do aplicativo.
O melhor lugar para adicionar validação ao seu aplicativo é no arquivo de classe parcial
do conjunto de dados. No Visual Basic ou Visual C#, abra o Designer de Conjunto de
Dados e clique duas vezes na coluna ou tabela para a qual você deseja criar a validação.
Essa ação abre o arquivo de código, no qual você pode criar um manipulador de
eventos ColumnChanging ou RowChanging.
C#
C#
Validar os dados
A validação em um conjunto de dados é realizada das seguintes maneiras:
Criando sua validação específica do aplicativo que pode verificar valores em uma
coluna de dados individual durante as alterações. Para obter mais informações,
confira Como validar dados durante alterações de coluna.
Criando sua validação específica do aplicativo que pode verificar dados em valores
enquanto uma linha de dados inteira está sendo alterada. Para obter mais
informações, confira Como validar dados durante alterações de linha.
Criando chaves, restrições exclusivas e assim por diante como parte da definição
de esquema real do conjunto de dados.
Vários eventos são gerados pelo objeto DataTable quando uma alteração está
ocorrendo em um registro:
Por padrão, cada alteração em uma coluna gera quatro eventos. O primeiro são os
eventos ColumnChanging e ColumnChanged para a coluna específica que está sendo
alterada. A seguir estão os eventos RowChanging e RowChanged. Se várias alterações
estiverem sendo feitas na linha, os eventos serão gerados para cada alteração.
7 Observação
O evento escolhido depende de quão granular você deseja que a validação seja. Se for
importante que você capture um erro imediatamente quando uma coluna for alterada,
crie a validação usando o evento ColumnChanging. Caso contrário, use o evento
RowChanging, que pode resultar na captura de vários erros ao mesmo tempo. Além
disso, se os dados estiverem estruturados para que o valor de uma coluna seja validado
com base no conteúdo de outra coluna, execute a validação durante o evento
RowChanging.
Quando os registros são atualizados, o objeto DataTable gera eventos aos quais você
pode responder à medida que as alterações estão ocorrendo e depois que as alterações
são feitas.
ColumnChanging O valor em uma coluna está sendo alterado. O evento passa a linha e a
coluna para você, juntamente com o novo valor proposto.
ColumnChanged O valor em uma coluna foi alterado. O evento passa a linha e a coluna para
você, juntamente com o valor proposto.
Evento Descrição
O evento passa a linha para você, juntamente com um valor que indica que
tipo de ação (alterar, inserir e assim por diante) está sendo executado.
RowChanged Uma linha foi alterada. O evento passa a linha para você, juntamente com um
valor que indica que tipo de ação (alterar, inserir e assim por diante) está
sendo executado.
RowDeleting Uma linha está sendo excluída. O evento passa a linha para você, juntamente
com um valor que indica que tipo de ação (excluir) está sendo executado.
RowDeleted Uma linha foi excluída. O evento passa a linha para você, juntamente com um
valor que indica que tipo de ação (excluir) está sendo executado.
7 Observação
Você pode validar dados quando o valor em uma coluna de dados for alterado
respondendo ao evento ColumnChanging. Quando gerado, esse evento passa um
argumento de evento (ProposedValue) que contém o valor que está sendo proposto
para a coluna atual. Com base no conteúdo de e.ProposedValue , você poderá:
Aceitar o valor proposto sem fazer nada.
2. Clique duas vezes na barra de título da tabela que você deseja validar. Essa ação
cria automaticamente o manipulador de eventos RowChanging do DataTable no
arquivo de classe parcial do conjunto de dados.
Dica
VB
2. Clique duas vezes na barra de título da tabela que você deseja validar. Essa ação
cria um arquivo de classe parcial para o DataTable.
7 Observação
C#
7 Observação
Use a enumeração DataRowVersion para acessar as diferentes versões de uma linha (por
exemplo, os valores originais que estavam em uma linha antes de processá-la).
C#
C#
DataSet changedRecords = dataSet1.GetChanges();
C#
C#
C#
C#
C#
C#
7 Observação
Versões diferentes de uma linha aparecerão somente depois que ela for editada e
antes de o método AcceptChanges ser chamado. Depois que o método
AcceptChanges tiver sido chamado, as versões atuais e originais serão as mesmas.
Passar o valor DataRowVersion junto com o índice de coluna (ou nome da coluna como
uma cadeia de caracteres) retorna o valor da versão de linha específica dessa coluna. A
coluna alterada é identificada durante os eventos ColumnChanging e ColumnChanged.
Este é um bom momento para inspecionar as diferentes versões de linha para fins de
validação. No entanto, se você suspendeu temporariamente as restrições, esses eventos
não serão gerados e será necessário identificar programaticamente quais colunas foram
alteradas. Você pode fazer isso iterando pela coleção Columns e comparando os
diferentes valores DataRowVersion.
C#
string originalCompanyName;
originalCompanyName = northwindDataSet1.Customers[0]
["CompanyName", DataRowVersion.Original].ToString();
C#
C#
string currentCompanyName;
currentCompanyName = northwindDataSet1.Customers[0]
["CompanyName", DataRowVersion.Current].ToString();
Confira também
Ferramentas de conjunto de dados no Visual Studio
Como validar dados no controle DataGridView do Windows Forms
Como exibir ícones de erro para validação de formulário com o componente
ErrorProvider do Windows Forms
Salvar dados de volta no banco de
dados em aplicativos do .NET
Framework
Artigo • 01/11/2023
Aplica-se a: Visual Studio Visual Studio para Mac Visual Studio Code
7 Observação
Quando você associa as tabelas de conjunto de dados aos controles em uma página do
Windows Form ou XAML, a arquitetura de associação de dados faz todo o trabalho.
Tratar uma exceção de Como lidar com exceções quando dois usuários tentam alterar
simultaneidade os mesmos dados em um banco de dados ao mesmo tempo
Como salvar dados usando Como salvar dados em uma transação usando o Sistema.
uma transação Namespace das transações e um objeto do TransactionScope
Salvando dados em uma Passo a passo que cria um aplicativo do Windows Forms para
transação demonstrar como salvar dados em um banco de dados dentro
de uma transação
Salvar dados em um banco de Como editar registros e salvar alterações em várias tabelas no
dados (várias tabelas) banco de dados
Salvar dados de um objeto Como passar dados de um objeto que não está em um conjunto
em um banco de dados de dados para um banco de dados usando um método DbDirect
do TableAdapter
Salvar os dados com os Como usar o TableAdapter para enviar consultas SQL
métodos TableAdapter diretamente para o banco de dados
DBDirect
U Cuidado
Isso evita que um erro seja gerado depois que você terminar de atualizar uma
coluna, mas não tiver iniciado a atualização de outra.
Isso impede que determinados eventos de atualização sejam gerados (eventos que
geralmente são usados para validação).
7 Observação
Para obter mais informações sobre como suspender eventos, confira Desativar restrições
ao preencher um conjunto de dados.
Propriedade RowState
A propriedade RowState de um objeto DataRow é um valor que fornece informações
sobre o status de uma linha de dados específica.
Valor de Descrição
DataRowState
Detached A linha foi criada, mas não faz parte de nenhum DataRowCollection. Um
objeto DataRow entra nesse estado imediatamente depois de ser criado,
antes de ser adicionado a uma coleção ou depois de ter sido removido de
uma coleção.
Enumeração DataRowVersion
Os conjuntos de dados mantêm várias versões de registros. Os campos DataRowVersion
são usados ao recuperar o valor encontrado em um DataRow, usando a propriedade
Item[] ou o método GetChildRows do objeto DataRow.
Original A versão original de um registro é uma cópia do registro, pois foi a última
vez que as alterações foram confirmadas no conjunto de dados. Na prática,
normalmente essa é a versão de um registro como lido em uma fonte de
dados.
A versão proposta é útil quando você precisa executar a validação antes de realmente
confirmar as alterações no conjunto de dados.
Mesmo que os registros tenham sido alterados, nem sempre há versões original ou
atual dessa linha. Quando você insere uma nova linha na tabela, não há versão original,
apenas uma versão atual. Da mesma forma, se você excluir uma linha chamando o
método Delete da tabela, haverá uma versão original, mas não haverá versão atual.
Você pode testar para ver se existe uma versão específica de um registro, consultando o
método HasVersion de uma linha de dados. Você pode acessar qualquer versão de um
registro passando um valor de enumeração DataRowVersion como um argumento
opcional ao solicitar o valor de uma coluna.
GetChanges por si só retorna todos os registros alterados. Por outro lado, ao passar o
Obter um subconjunto de registros alterados é útil quando você deseja enviar registros
para outro componente para processamento. Em vez de enviar todo o conjunto de
dados, você pode reduzir a sobrecarga de comunicação com o outro componente,
obtendo apenas os registros de que o componente precisa.
Se as alterações refletirem o estado atual da fonte de dados, você não precisará mais
manter essas informações. Normalmente, há dois momentos em que o conjunto de
dados e sua origem estão sincronizados:
Imediatamente depois de carregar as informações no conjunto de dados, como
quando você lê os dados na origem.
7 Observação
U Cuidado
A tabela a seguir descreve quais alterações são confirmadas com base no objeto em
que o método é chamado:
Método Result
7 Observação
Validação de dados
Para verificar se os dados no seu aplicativo atendem aos requisitos dos processos para
os quais são passados, geralmente você precisa adicionar a validação. Isso pode
envolver verificar se a entrada de um usuário em um formulário está correta, validar
dados enviados para seu aplicativo por outro aplicativo ou até mesmo verificar se as
informações calculadas no seu componente estão dentro das restrições da sua fonte de
dados e dos requisitos de aplicativo.
) Importante
SQL
SQL
Agora o aplicativo chama o método Update para transmitir o conjunto de dados para o
banco de dados. Por sua vez, o método inspeciona cada linha. Para a primeira linha, o
método não transmite instruções SQL para o banco de dados, pois essa linha não foi
alterada desde que foi originalmente buscada no banco de dados.
A instrução SQL transmitida é uma instrução UPDATE. O adaptador sabe usar uma
instrução UPDATE, pois o valor da propriedade RowState é Modified.
A instrução SQL transmitida inclui uma cláusula WHERE, que indica que o destino
da instrução UPDATE é a linha em que CustomerID = 'c400' . Essa parte da
instrução SELECT distingue a linha de destino de todas as outras, pois o
CustomerID é a chave primária da tabela de destino. As informações da cláusula
7 Observação
Passar parâmetros
Normalmente, você usa parâmetros para passar os valores dos registros que serão
atualizados no banco de dados. Quando o método Update do TableAdapter executa
uma instrução UPDATE, precisa preencher os valores de parâmetro. Ele obtém esses
valores da coleção Parameters para o comando de dados apropriado, nesse caso, o
objeto UpdateCommand no TableAdapter.
Se você tiver usado as ferramentas do Visual Studio para gerar um adaptador de dados,
o objeto UpdateCommand conterá uma coleção de parâmetros que correspondem a cada
espaço reservado de parâmetro na instrução.
Em uma instrução UPDATE, você precisa especificar os novos valores (os que serão
gravados no registro), bem como os valores antigos (para que o registro possa ser
localizado no banco de dados). Portanto, há dois parâmetros para cada valor: um para a
cláusula SET e outro para a cláusula WHERE. Ambos os parâmetros leem dados do
registro que está sendo atualizado, mas obtêm versões diferentes do valor da coluna
com base na propriedade SourceVersion do parâmetro. O parâmetro da cláusula SET
obtém a versão atual e o parâmetro da cláusula WHERE obtém a versão original.
7 Observação
Você também pode definir valores na coleção Parameters por conta própria no
código, o que normalmente faria em um manipulador de eventos para o evento
RowChanging do adaptador de dados.
Confira também
Ferramentas de conjunto de dados no Visual Studio
Criar e configurar TableAdapters
Atualizar dados usando um TableAdapter
Associar controles a dados no Visual Studio
Validar os dados
Instruções: adicionar, modificar e excluir entidades (serviços de dados do WCF)
Inserir novos registros em um banco de
dados em aplicativos do .NET
Framework
Artigo • 05/11/2024
Este artigo descreve como inserir registros em um banco de dados para um aplicativo
criado com o ADO.NET e o .NET Framework usando o Visual Basic (VB) ou o C#. Se a
configuração do aplicativo usar o Entity Framework 6, consulte Adicionando uma nova
entidade ao contexto ou, para o Entity Framework Core, consulte Adicionando dados.
7 Observação
Pré-requisitos
Para trabalhar com métodos TableAdapter, você precisa ter uma instância
disponível. Para obter mais informações, consulte Criar e configurar TableAdapters
em aplicativos .NET Framework.
Segurança do .NET: você deve ter acesso ao banco de dados ao qual está
tentando se conectar e permissão para executar inserções na tabela desejada.
Escolha o método de inserção
Há diferentes abordagens para inserir registros em um banco de dados com base no
cenário do aplicativo. A tabela a seguir resume as opções:
ノ Expandir a tabela
O aplicativo usa Use o método TableAdapter.Insert Essa abordagem permite que você
objetos para para inserir novos registros no tenha um controle mais preciso sobre a
armazenar dados banco de dados criação de novos registros.
Um DataSet inteiro
Uma DataTable
Uma matriz de DataRows
Uma única DataRow
C#
7 Observação
Se você não tiver uma instância disponível, instancie o TableAdapter que deseja
usar.
C#
NorthwindDataSetTableAdapters.RegionTableAdapter regionTableAdapter =
new NorthwindDataSetTableAdapters.RegionTableAdapter();
regionTableAdapter.Insert(5, "NorthWestern");
C#
System.Data.SqlClient.SqlConnection sqlConnection1 =
new System.Data.SqlClient.SqlConnection("YOUR CONNECTION STRING");
System.Data.SqlClient.SqlCommand cmd = new
System.Data.SqlClient.SqlCommand();
cmd.CommandType = System.Data.CommandType.Text;
cmd.CommandText = "INSERT Region (RegionID, RegionDescription) VALUES
(5, 'NorthWestern')";
cmd.Connection = sqlConnection1;
sqlConnection1.Open();
cmd.ExecuteNonQuery();
sqlConnection1.Close();
Conteúdo relacionado
Salvar dados novamente no banco de dados
Salvar dados com os métodos TableAdapter DBDirect em aplicativos do .NET
Framework
Comentários
Esta página foi útil? Yes No
7 Observação
Depois que os dados em seu conjunto de dados tiverem sido modificados e validados,
você poderá enviar os dados atualizados de volta para um banco de dados chamando o
método Update de um TableAdapter. O método Update atualiza uma única tabela de
dados e executa o comando correto (INSERT, UPDATE ou DELETE) com base no
RowState de cada linha de dados na tabela. Quando um conjunto de dados tem tabelas
relacionadas, o Visual Studio gera uma classe TableAdapterManager que você usa para
fazer as atualizações. A classe TableAdapterManager garante que as atualizações sejam
feitas na ordem correta com base nas restrições de chave estrangeira definidas no
banco de dados. Quando você usa controles associados a dados, a arquitetura de
vinculação de dados cria uma variável membro da classe TableAdapterManager
chamada tableAdapterManager.
7 Observação
2. Se uma exceção for capturada, localize a linha de dados que causou o erro.
C#
try
{
this.Validate();
this.customersBindingSource.EndEdit();
this.customersTableAdapter.Update(this.northwindDataSet.Customers);
MessageBox.Show("Update successful");
}
catch (System.Exception ex)
{
MessageBox.Show("Update failed");
}
Conteúdo relacionado
Salvar dados novamente no banco de dados
Atualização hierárquica
Artigo • 04/05/2023
Aplica-se a: Visual Studio Visual Studio para Mac Visual Studio Code
7 Observação
uma classe gerada pelo Visual Studio, não um tipo .NET. Quando você arrasta uma
tabela da janela Fontes de Dados para uma página do Windows Form ou WPF, o Visual
Studio adiciona uma variável do tipo TableAdapterManager ao formulário ou página e
você a vê no designer, na bandeja de componentes. Para obter informações detalhadas
sobre a classe TableAdapterManager , consulte a seção Referência de
tableAdapterManager de TableAdapters.
Por padrão, um conjunto de dados trata tabelas relacionadas como "somente relações",
o que significa que ele não impõe restrições de chave estrangeira. Você pode modificar
essa configuração em tempo de design usando o Designer de Conjunto de Dados.
Selecione a linha de relação entre duas tabelas para abrir a caixa de diálogo Relação. As
alterações feitas aqui determinarão como o TableAdapterManager se comporta ao enviar
as alterações nas tabelas relacionadas de volta ao banco de dados.
Por padrão, as tabelas de dados em um conjunto de dados são geradas com relações
(DataRelation) que correspondem às relações no banco de dados. No entanto, a relação
no conjunto de dados não é gerada como uma restrição de chave estrangeira. O
DataRelation é configurado como Somente Relação, sem UpdateRule ou DeleteRule em
vigor.
Por padrão, atualizações e exclusões em cascata são desativadas mesmo que a relação
de banco de dados esteja definida com as atualizações e/ou exclusões em cascata
ativadas. Por exemplo, criar um cliente e um pedido e tentar salvar os dados pode
causar um conflito com as restrições de chave estrangeira definidas no banco de dados.
Para obter mais informações, confira Desativar restrições ao preencher um conjunto de
dados.
7 Observação
É importante entender que a ordem de atualização é inclusiva. Ou seja, quando
atualizações são executadas, inserções e exclusões são executadas para todas as
tabelas no conjunto de dados.
7 Observação
O código salvar gerado também contém uma linha de código que chama o método
CustomersBindingSource.EndEdit . Mais especificamente, ele chama o método EndEdit do
primeiro BindingSource adicionado ao formulário. Ou seja, esse código é gerado apenas
para a primeira tabela arrastada da janela Fontes de Dados para o formulário. A
chamada EndEdit confirma as alterações que estão em processo em qualquer controle
de associação de dados sendo editado no momento. Portanto, se um controle
associado a dados ainda estiver em foco e você clicar no botão Salvar, todas as edições
pendentes nesse controle serão confirmadas antes da gravação real (o método
TableAdapterManager.UpdateAll ).
7 Observação
C#
this.Validate();
this.customersBindingSource.EndEdit();
this.ordersBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.northwindDataSet);
Além de confirmar as alterações em uma tabela filho relacionada antes de salvar dados
em um banco de dados, você também pode confirmar registros pais recém-criados
antes de adicionar novos registros filhos a um conjunto de dados. Em outras palavras,
pode ser necessário adicionar o novo registro pai ( Customer ) ao conjunto de dados
antes que as restrições de chave estrangeira permitam que novos registros filho
( Orders ) sejam adicionados ao conjunto de dados. Para realizar isso, você pode usar o
evento filho BindingSource.AddingNew .
7 Observação
C#
this.customersBindingSource.EndEdit();
Referência de TableAdapterManager
Por padrão, uma classe TableAdapterManager é gerada quando você cria um conjunto de
dados que contém tabelas relacionadas. Para impedir que a classe seja gerada, altere o
valor da propriedade Hierarchical Update do conjunto de dados para false. Quando
você arrasta uma tabela que tem uma relação para a superfície de design de uma
página do Windows Form ou WPF, o Visual Studio declara uma variável de membro da
classe. Se você não usa a vinculação de dados, precisa declarar a variável manualmente.
A classe TableAdapterManager não é um tipo .NET. Portanto, você não pode pesquisá-la
na documentação. Ela é criada em tempo de design como parte do processo de criação
do conjunto de dados.
Membro Descrição
Aplica-se a: Visual Studio Visual Studio para Mac Visual Studio Code
7 Observação
Pré-requisitos
Este passo a passo usa o SQL Server Express LocalDB e o banco de dados de exemplo
da Northwind.
1. Se você não tiver SQL Server Express LocalDB, instale-o por meio da página de
download do SQL Server Express ou usando o Instalador do Visual Studio. No
Instalador do Visual Studio, você pode instalar o SQL Server Express LocalDB
como parte da carga de trabalho Armazenamento e processamento de dados ou
como um componente individual.
7 Observação
1. Para abrir a janela Fontes de Dados, no menu Dados, escolha Mostrar Fontes de
Dados.
Testar o formulário
Agora você pode testar o formulário para verificar se ele se comporta da forma
esperada até o momento:
7 Observação
C#
C#
this.customersTableAdapter.Update(this.northwindDataSet.Customers);
MessageBox.Show("Update successful");
}
catch (DBConcurrencyException dbcx)
{
DialogResult response =
MessageBox.Show(CreateMessage((NorthwindDataSet.CustomersRow)
(dbcx.Row)), "Concurrency Exception",
MessageBoxButtons.YesNo);
ProcessDialogResult(response);
}
catch (Exception ex)
{
MessageBox.Show("An error was thrown while attempting to
update the database.");
}
}
C#
C#
C#
C#
//----------------------------------------------------------------------
----
// This method loads a temporary table with current records from the
database
// and returns the current values from the row that caused the
exception.
//----------------------------------------------------------------------
----
private NorthwindDataSet.CustomersDataTable tempCustomersDataTable =
new NorthwindDataSet.CustomersDataTable();
private NorthwindDataSet.CustomersRow
GetCurrentRowInDB(NorthwindDataSet.CustomersRow RowWithError)
{
this.customersTableAdapter.Fill(tempCustomersDataTable);
NorthwindDataSet.CustomersRow currentRowInDb =
tempCustomersDataTable.FindByCustomerID(RowWithError.CustomerID);
return currentRowInDb;
}
//----------------------------------------------------------------------
----
// This method takes a CustomersRow and RowVersion
// and returns a string of column values to display to the user.
//----------------------------------------------------------------------
----
private string GetRowData(NorthwindDataSet.CustomersRow custRow,
DataRowVersion RowVersion)
{
string rowData = "";
Adicione o seguinte código abaixo do código que foi adicionado na seção anterior:
C#
C#
// This method takes the DialogResult selected by the user and updates
the database
// with the new values or cancels the update and resets the Customers
table
// (in the dataset) with the values currently in the database.
case DialogResult.No:
northwindDataSet.Merge(tempCustomersDataTable);
MessageBox.Show("Update cancelled");
break;
}
}
2. Depois que o formulário for exibido, deixe-o em execução e alterne para o IDE do
Visual Studio.
7 Observação
7 Observação
A maneira mais fácil de implementar uma transação é criar uma instância de um objeto
TransactionScope em uma instrução using . (Para obter mais informações, confira
Instrução using e instrução using.) O código executado dentro da instrução using
participa da transação.
Para reverter a transação, gere uma exceção antes de chamar o método Complete.
C#
Conteúdo relacionado
Salvar dados novamente no banco de dados
Passo a passo: salvar dados em uma transação
Comentários
Esta página foi útil? Yes No
Aplica-se a: Visual Studio Visual Studio para Mac Visual Studio Code
7 Observação
Este passo a passo demonstra como salvar dados em uma transação usando o
namespace System.Transactions. Neste passo a passo, você criará um aplicativo
Windows Forms. Você usará o Assistente de Configuração da Fonte de Dados para criar
um conjunto de dados para duas tabelas no banco de dados de exemplo Northwind.
Você adicionará controles associados a dados a um formulário do Windows e modificará
o código do botão salvar do BindingNavigator para atualizar o banco de dados dentro
de um TransactionScope.
Pré-requisitos
Para concluir este passo a passo, você precisa das cargas de trabalho de
Desenvolvimento de área de trabalho do .NET e Armazenamento de dados e
processamento instaladas no Visual Studio. Para instalá-las, abra Instalador do Visual
Studio e escolha Modificar (ou Mais>Modificar) ao lado da versão do Visual Studio que
você deseja modificar. Confira Modificar o Visual Studio.
Este passo a passo usa o SQL Server Express LocalDB e o banco de dados de exemplo
da Northwind.
1. Se você não tiver SQL Server Express LocalDB, instale-o por meio da página de
download do SQL Server Express ou usando o Instalador do Visual Studio. No
Instalador do Visual Studio, o SQL Server Express LocalDB pode ser instalado como
parte da carga de trabalho do Desenvolvimento para desktop com .NET ou como
um componente individual.
1. Para abrir a janela Fontes de Dados, no menu Dados, selecione Mostrar Fontes de
Dados.
2. Na janela Fontes de Dados, selecione Adicionar Nova Fonte de Dados para iniciar
o Assistente de Configuração de Fonte de Dados.
-ou-
5. Se o banco de dados exigir uma senha, selecione a opção para incluir dados
confidenciais e, em seguida, selecione Avançar.
do componente.
C#
C#
updateTransaction.Complete();
northwindDataSet.AcceptChanges();
}
}
C#
C#
if (deletedOrders != null)
{
try
{
ordersTableAdapter.Update(deletedOrders);
}
catch (System.Exception ex)
{
MessageBox.Show("DeleteOrders Failed");
}
}
}
C#
C#
northwindDataSet.Customers.GetChanges(DataRowState.Deleted);
if (deletedCustomers != null)
{
try
{
customersTableAdapter.Update(deletedCustomers);
}
catch (System.Exception ex)
{
MessageBox.Show("DeleteCustomers Failed");
}
}
}
C#
C#
if (newCustomers != null)
{
try
{
customersTableAdapter.Update(newCustomers);
}
catch (System.Exception ex)
{
MessageBox.Show("AddNewCustomers Failed");
}
}
}
C#
C#
if (newOrders != null)
{
try
{
ordersTableAdapter.Update(newOrders);
}
catch (System.Exception ex)
{
MessageBox.Show("AddNewOrders Failed");
}
}
}
Executar o aplicativo
Pressione F5 para executar o aplicativo.
Conteúdo relacionado
Como salvar dados usando uma transação
Salvar dados novamente no banco de dados
Salvar dados em um banco de dados
(várias tabelas) em aplicativos do .NET
Framework
Artigo • 07/12/2023
Aplica-se a: Visual Studio Visual Studio para Mac Visual Studio Code
7 Observação
Você pode salvar os dados em seu aplicativo de volta no banco de dados chamando o
método Update de um TableAdapter. Quando você arrasta tabelas da janela Fontes de
Dados para um formulário, o código necessário para salvar dados é adicionado
automaticamente. Todas as tabelas adicionais adicionadas a um formulário exigem a
adição manual desse código. Essa explicação passo a passo mostra como adicionar
código para salvar atualizações de mais de uma tabela.
Pré-requisitos
Para concluir este passo a passo, você precisa das cargas de trabalho de
Desenvolvimento de área de trabalho do .NET e Armazenamento de dados e
processamento instaladas no Visual Studio. Para instalá-las, abra Instalador do Visual
Studio e escolha Modificar (ou Mais>Modificar) ao lado da versão do Visual Studio que
você deseja modificar. Confira Modificar o Visual Studio.
Este passo a passo usa o SQL Server Express LocalDB e o banco de dados de exemplo
da Northwind.
1. Se você não tiver SQL Server Express LocalDB, instale-o por meio da página de
download do SQL Server Express ou usando o Instalador do Visual Studio. No
Instalador do Visual Studio, você pode instalar o SQL Server Express LocalDB
como parte da carga de trabalho Armazenamento e processamento de dados ou
como um componente individual.
2. Na janela Fontes de Dados, selecione Adicionar Nova Fonte de Dados para iniciar
o Assistente de Configuração de Fonte de Dados.
-ou-
5. Se o banco de dados exigir uma senha, selecione a opção para incluir dados
confidenciais e, em seguida, selecione Avançar.
7 Observação
7 Observação
Para maior clareza, este passo a passo não usa uma transação. No entanto, se você
estiver atualizando duas ou mais tabelas relacionadas, inclua toda a lógica de
atualização dentro de uma transação. Uma transação é um processo que garante
que todas as alterações relacionadas a um banco de dados sejam bem-sucedidas
antes que qualquer alteração seja confirmada. Para obter mais informações,
consulte Transações e simultaneidade.
C#
C#
this.Validate();
this.ordersBindingSource.EndEdit();
this.customersBindingSource.EndEdit();
NorthwindDataSet.OrdersDataTable deletedOrders =
(NorthwindDataSet.OrdersDataTable)
northwindDataSet.Orders.GetChanges(DataRowState.Deleted);
NorthwindDataSet.OrdersDataTable newOrders =
(NorthwindDataSet.OrdersDataTable)
northwindDataSet.Orders.GetChanges(DataRowState.Added);
NorthwindDataSet.OrdersDataTable modifiedOrders =
(NorthwindDataSet.OrdersDataTable)
northwindDataSet.Orders.GetChanges(DataRowState.Modified);
try
{
// Remove all deleted orders from the Orders table.
if (deletedOrders != null)
{
ordersTableAdapter.Update(deletedOrders);
}
northwindDataSet.AcceptChanges();
}
finally
{
if (deletedOrders != null)
{
deletedOrders.Dispose();
}
if (newOrders != null)
{
newOrders.Dispose();
}
if (modifiedOrders != null)
{
modifiedOrders.Dispose();
}
}
Testar o aplicativo
1. Pressione F5.
Conteúdo relacionado
Salvar dados novamente no banco de dados
Salvar dados de um objeto em um
banco de dados em aplicativos do .NET
Framework
Artigo • 05/11/2024
7 Observação
Para salvar dados de uma coleção de objetos, execute um loop pela coleção de objetos
(por exemplo, um loop for-next) e envie os valores de cada objeto para o banco de
dados usando um dos métodos DBDirect do TableAdapter.
Por padrão, os métodos DBDirect são criados em um TableAdapter que pode ser
executado diretamente no banco de dados. Esses métodos podem ser chamados
diretamente e não exigem objetos DataSet ou DataTable para reconciliar alterações para
enviar atualizações a um banco de dados.
7 Observação
ノ Expandir a tabela
TableAdapter.Delete Exclui registros existentes do banco de dados com base nos valores de
coluna originais passados como parâmetros de método.
C#
7 Observação
Seu objeto precisa manter os valores originais para passá-los para o método
Update . Este exemplo usa propriedades com um prefixo orig para armazenar
os valores originais.
C#
7 Observação
Seu objeto precisa manter os valores originais para passá-los para o método
Delete . Este exemplo usa propriedades com um prefixo orig para armazenar
os valores originais.
C#
Conteúdo relacionado
Salvar dados novamente no banco de dados
Comentários
Esta página foi útil? Yes No
Aplica-se a: Visual Studio Visual Studio para Mac Visual Studio Code
7 Observação
Pré-requisitos
As etapas neste tutorial funcionam com aplicativos .NET Framework Windows Forms.
Este tutorial usa o SQL Server Express LocalDB e o banco de dados de exemplo da
Northwind.
1. Se você não tiver SQL Server Express LocalDB, instale-o por meio da página de
download do SQL Server Express ou usando o Instalador do Visual Studio. No
Instalador do Visual Studio, você pode instalar o SQL Server Express LocalDB
como parte da carga de trabalho Armazenamento e processamento de dados ou
como um componente individual.
7 Observação
O código deste tutorial está disponível em C# e Visual Basic. Para alternar a
linguagem de código nesta página entre C# e Visual Basic, use o comutador de
linguagem de código na parte superior da página à direita.
2. Na janela Fontes de Dados, selecione Adicionar Nova Fonte de Dados para iniciar
o Assistente de Configuração de Fonte de Dados.
-ou-
5. Se o banco de dados exigir uma senha, selecione a opção para incluir dados
confidenciais e, em seguida, selecione Avançar.
componente.
Nome Texto
InsertButton Inserção
UpdateButton Atualizar
DeleteButton Excluir
C#
try
{
regionTableAdapter1.Insert(newRegionID,
newRegionDescription);
}
catch (Exception ex)
{
MessageBox.Show("Insert Failed");
}
RefreshDataset();
}
7 Observação
C#
try
{
regionTableAdapter1.Update(newRegionID, "Updated Region
Description", 5, "NorthEastern");
}
catch (Exception ex)
{
MessageBox.Show("Update Failed");
}
RefreshDataset();
}
C#
C#
Próximas etapas
Dependendo dos requisitos do aplicativo, existem várias etapas que você talvez queira
realizar após criar um formulário de associação de dados. Entre algumas das melhorias
que você poderia fazer nesse tutorial estão:
Confira também
Salvar dados novamente no banco de dados
Salvar um conjunto de dados como XML
em aplicativos do .NET Framework
Artigo • 12/01/2024
7 Observação
Chamar o método GetXml retorna uma cadeia de caracteres que contém os dados de
todas as tabelas de dados no conjunto de dados formatado como XML.
Chamar o método WriteXml envia os dados formatados em XML para um arquivo que
você especificar.
C#
C#
Conteúdo relacionado
Salvar dados novamente no banco de dados
Consultar conjuntos de dados em
aplicativos do .NET Framework
Artigo • 12/01/2024
7 Observação
7 Observação
C#
NorthwindDataSet.CustomersRow customersRow =
northwindDataSet1.Customers.FindByCustomerID("ALFKI");
O exemplo a seguir mostra como declarar uma nova linha chamada foundRow e
atribuir a ela o valor retornado do método Find. Se a chave primária for
encontrada, o conteúdo do índice da coluna 1 será exibido em uma caixa de
mensagem.
C#
string s = "primaryKeyValue";
DataRow foundRow = dataSet1.Tables["AnyTable"].Rows.Find(s);
if (foundRow != null)
{
MessageBox.Show(foundRow[0].ToString());
}
else
{
MessageBox.Show("A row with the primary key of " + s + " could
not be found");
}
As tabelas de dados são criadas com o método Select, que retorna uma matriz de
DataRows com base na expressão passada para o método Select. Para obter mais
informações sobre como criar expressões válidas, consulte a seção "Sintaxe de
expressão" da página da propriedade Expression.
O exemplo a seguir mostra como usar o método Select do DataTable para localizar
linhas específicas.
C#
DataRow[] foundRows;
foundRows = dataSet1.Tables["Customers"].Select("CompanyName Like
'A%'");
Acessar registros relacionados
Quando as tabelas em um conjunto de dados estão relacionadas, um objeto
DataRelation pode disponibilizar os registros relacionados em outra tabela. Por
exemplo, um conjunto de dados que contém tabelas Customers e Orders pode ser
disponibilizado.
Você pode usar um objeto DataRelation para localizar registros relacionados chamando
o método GetChildRows de um DataRow na tabela pai. Esse método retorna uma matriz
de registros filho relacionados. Ou você pode chamar o método GetParentRow de um
DataRow na tabela filho. Esse método retorna um único DataRow da tabela pai.
Esta página fornece exemplos usando conjuntos de dados tipados. Para obter
informações sobre como navegar em relações em conjuntos de dados não tipados,
consulte Navegando em DataRelations.
7 Observação
Os exemplos de código a seguir demonstram como navegar para cima e para baixo nas
relações em conjuntos de dados tipados. Os exemplos de código usam os métodos
tipados DataRows ( NorthwindDataSet.OrdersRow ) e FindByPrimaryKey ( FindByCustomerID )
gerados para localizar uma linha desejada e retornar os registros relacionados. Os
exemplos são compilados e executados corretamente somente se você tiver:
Além disso, ambas as tabelas precisam ser preenchidas com os dados para que todos os
registros sejam retornados.
C#
orders = (NorthwindDataSet.OrdersRow[])northwindDataSet.Customers.
FindByCustomerID(custID).GetChildRows("FK_Orders_Customers");
MessageBox.Show(orders.Length.ToString());
C#
customer = (NorthwindDataSet.CustomersRow)northwindDataSet.Orders.
FindByOrderID(orderID).GetParentRow("FK_Orders_Customers");
MessageBox.Show(customer.CompanyName);
Conteúdo relacionado
Ferramentas de conjunto de dados no Visual Studio
Associar controles a dados em
aplicativos .NET Framework usando o
Visual Studio
Artigo • 12/01/2024
7 Observação
Este tópico descreve as fontes de dados que você pode usar para criar controles
associados a dados. Ele também descreve algumas das tarefas gerais envolvidas na
associação de dados. Para obter detalhes mais específicos sobre como criar controles
associados a dados, consulte Associar controles do Windows Forms a dados no Visual
Studio e Associar controles do WPF a dados no Visual Studio.
Fontes de dados
No contexto da associação de dados, uma fonte de dados representa os dados na
memória que podem ser associados à interface do usuário. Em termos práticos, uma
fonte de dados pode ser uma classe do Entity Framework, um conjunto de dados, um
ponto de extremidade de serviço encapsulado em um objeto de proxy .NET, uma classe
LINQ to SQL ou qualquer objeto ou coleção .NET. Algumas fontes de dados permitem
que você crie controles associados a dados arrastando itens da janela Fontes de Dados,
enquanto outras não. A tabela a seguir mostra quais fontes de dados têm suporte.
ノ Expandir a tabela
2. Classes LINQ to SQL não aparecem na janela Fontes de Dados. No entanto, você
pode adicionar uma nova fonte de dados de objeto baseada em classes LINQ to
SQL e, em seguida, arrastar esses objetos para o designer para criar controles
associados a dados. Para obter mais informações, consulte Passo a passo: criando
classes LINQ to SQL (Designer O-R).
ノ Expandir a tabela
Adicione uma fonte de dados ao seu projeto. Adicionar novas fontes de dados
Defina o controle que é criado quando você arrasta Definir o controle a ser criado quando
um item da janela Fontes de Dados para o arrastado da janela Fontes de Dados
designer.
Filtre dados que aparecem na interface do usuário. Filtrar e classificar dados em um aplicativo
do Windows Forms
Conteúdo relacionado
Ferramentas de dados do Visual Studio para .NET
Associação de dados do Windows Forms
Definir o controle a ser criado quando
arrastado da janela Fontes de Dados
Artigo • 08/08/2024
7 Observação
Você pode criar controles associados a dados arrastando itens da janela Fontes de
Dados para o designer do WPF ou do Windows Forms. Cada item na janela Fontes de
Dados possui um controle padrão que é criado ao arrastá-lo para o designer. No
entanto, você pode optar por criar um controle diferente.
Dica
Para saber como criar um controle personalizado do Windows Forms que pode ser
adicionado à lista de controles para objetos ou tabelas de dados na janela Fontes
de Dados, consulte Criar um controle do usuário do Windows Forms com suporte
para associação de dados complexa.
2. Na janela Fontes de Dados, expanda a tabela ou objeto desejado para exibir suas
colunas ou propriedades.
3. Selecione cada coluna ou propriedade para a qual deseja definir o controle a ser
criado.
Para saber como criar um controle personalizado que pode ser adicionado à lista
de controles para propriedades ou colunas de dados na janela Fontes de Dados,
consulte Criar um controle do usuário do Windows Forms com suporte para
associação de dados simples.
Conteúdo relacionado
Associar controles a dados no Visual Studio
Comentários
Esta página foi útil? Yes No
Adicionar controles personalizados à
janela Fontes de Dados
Artigo • 04/05/2023
Aplica-se a: Visual Studio Visual Studio para Mac Visual Studio Code
7 Observação
Ao arrastar um item da janela Fontes de Dados para uma superfície de design para criar
um controle associado a dados, você pode selecionar o tipo de controle criado. Cada
item na janela tem uma lista suspensa que exibe os controles que você pode escolher. O
conjunto de controles associado a cada item é determinado pelo tipo de dados do item.
Se o controle que você deseja criar não aparecer na lista, você poderá seguir as
instruções neste tópico para adicionar o controle à lista.
Para obter mais informações sobre como selecionar controles associados a dados a
serem criados para itens na janela Fontes de Dados, consulte Definir o controle a ser
criado ao arrastar da janela Fontes de Dados.
2. Na janela Fontes de Dados, clique em um item que faz parte de uma fonte de
dados que você adicionou à janela e clique no menu suspenso do item.
Dica
Para personalizar a lista de controles para uma coluna de uma tabela ou uma
propriedade de um objeto, selecione o tipo de dados da coluna ou
propriedade no armazenamento de dados subjacente.
5. Na caixa Controles associados, selecione cada controle que você deseja que esteja
disponível para o tipo de dados selecionado ou desmarque a seleção de todos os
controles que você deseja remover da lista.
7 Observação
Se o controle que você deseja selecionar não aparecer na caixa Controles
associados, você deverá adicionar o controle à lista. Para obter mais
informações, consulte Adicionar controles associados.
6. Clique em OK.
7. Na janela Fontes de Dados, clique em um item do tipo de dados que você acabou
de associar a um ou mais controles e clique no menu suspenso do item.
Atributo Descrição
7 Observação
Confira também
Associar controles a dados no Visual Studio
Caixa de diálogo Opções de personalização da interface do usuário de dados
Associar controles WPF a dados no
Visual Studio
Artigo • 04/05/2023
Aplica-se a: Visual Studio Visual Studio para Mac Visual Studio Code
7 Observação
Para obter informações gerais sobre como criar controles associados a dados no Visual
Studio, confira Associar controles a dados no Visual Studio. Para obter mais informações
sobre vinculação de dados do WPF, confira Visão geral de vinculação de dados.
Tarefa Mais
informações
Tarefa Mais
informações
Crie controles que exibam dados relacionados em uma relação pai-filho: Exibir dados
quando o usuário seleciona um registro de dados pai em um controle, outro relacionados em
controle exibe dados filho relacionados ao registro selecionado. aplicativos WPF
Crie uma tabela de pesquisa que exiba informações de uma tabela com base Criar tabelas de
no valor de um campo de chave estrangeira em outra tabela. pesquisa em
aplicativos do
WPF
A tabela a seguir lista o XAML e o código que o Visual Studio gera para cada tipo de
fonte de dados na janela Fontes de Dados.
Fonte de dados Gerar XAML que associa um Gerar código que preenche a fonte
controle à fonte de dados de dados com dados
Fonte de dados Gerar XAML que associa um Gerar código que preenche a fonte
controle à fonte de dados de dados com dados
Conjunto de dados
Quando você arrasta uma tabela ou uma coluna da janela Fontes de Dados para o
designer, o Visual Studio gera XAML que faz o seguinte:
Cria uma associação de dados para um controle. Se você arrastar o item para um
controle existente no designer, o XAML associará o controle ao item. Se você
arrastar o item para um contêiner, o XAML criará o controle que foi selecionado
para o item arrastado e associará o controle ao item. O controle é criado dentro de
um novo Grid.
Adiciona um novo método que retorna uma consulta para a entidade arrastada
para o designer (ou a entidade que contém a propriedade que você arrastou para
o designer). O novo método tem o nome Get<EntityName>Query , em que \
<EntityName> é o nome da entidade.
Serviços
Quando você arrasta um objeto ou uma propriedade de serviço da janela Fontes de
Dados para o designer, o Visual Studio gera XAML que cria um controle de associação
de dados (ou associa um controle existente ao objeto ou à propriedade). No entanto, o
Visual Studio não gera o código que preenche o objeto de serviço do proxy com dados.
Você deve gravar esse código sozinho. Para obter um exemplo que demonstra como
fazer isso, confira Associar controles WPF a um serviço de dados WCF.
Cria uma associação de dados para um controle. Se você arrastar o item para um
controle existente no designer, o XAML associará o controle ao item. Se você
arrastar o item para um contêiner, o XAML criará o controle que foi selecionado
para o item arrastado e associará o controle ao item. O controle é criado dentro de
um novo Grid.
Objetos
Quando você arrasta um objeto ou uma propriedade da janela Fontes de Dados para o
designer, o Visual Studio gera XAML que cria um controle de associação de dados (ou
associa um controle existente ao objeto ou à propriedade). No entanto, o Visual Studio
não gera código para preencher o objeto com dados. Você deve gravar esse código
sozinho.
7 Observação
Cria uma associação de dados para um controle. Se você arrastar o item para um
controle existente no designer, o XAML associará o controle ao item. Se você
arrastar o item para um contêiner, o XAML criará o controle que foi selecionado
para o item arrastado e associará o controle ao item. O controle é criado dentro de
um novo Grid.
Confira também
Associar controles a dados no Visual Studio
Vincular controles do WPF a um
conjunto de dados em aplicativos do
.NET Framework
Artigo • 07/12/2023
Aplica-se a: Visual Studio Visual Studio para Mac Visual Studio Code
7 Observação
Neste passo a passo, você criará um aplicativo WPF que contém controles de associação
de dados. Os controles são associados a registros de produto que são encapsulados em
um conjunto de dados. Você também adicionará botões para navegar pelos produtos e
salvar alterações em registros de produtos.
Criando botões que navegam para a frente e para trás nos registros de produtos.
Criando um botão para salvar as alterações que os usuários fazem nos registros de
produtos na tabela de dados e na fonte de dados subjacente.
7 Observação
Seu computador pode mostrar diferentes nomes ou locais para alguns dos
elementos de interface do usuário do Visual Studio neste artigo. Você pode estar
usando outra edição do Visual Studio ou outras configurações de ambiente. Para
obter mais informações, confira Personalizar o IDE.
Pré-requisitos
Você precisará dos seguintes componentes para concluir este passo a passo:
Para concluir este passo a passo, você precisa das cargas de trabalho de
Desenvolvimento de área de trabalho do .NET e Armazenamento de dados e
processamento instaladas no Visual Studio. Para instalá-las, abra Instalador do
Visual Studio e escolha Modificar (ou Mais>Modificar) ao lado da versão do
Visual Studio que você deseja modificar. Confira Modificar o 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 Light (AdventureWorksLT)
anexado a ele. Para baixar o banco de dados, consulte os bancos de dados de
exemplo doAdventureWorks.
Conhecimento prévio dos conceitos a seguir também é útil, mas não é necessário para
concluir o passo a passo:
Associação de dados do WPF. Para obter mais informações, consulte Visão geral
de vinculação de dados.
Criar o projeto
Crie um novo projeto do WPF para exibir registros de produto.
8. Clique em Concluir.
modificar esse método para retornar apenas um subconjunto das linhas. Para este passo
a passo, modifique o método Fill para retornar somente linhas de produtos com
fotos.
3. Na página Insira uma Instrução SQL, adicione a seguinte cláusula WHERE após a
instrução SELECT na caixa de texto.
SQL
4. Clique em Concluir.
<Grid.RowDefinitions>
<RowDefinition Height="75" />
<RowDefinition Height="625" />
</Grid.RowDefinitions>
<Button HorizontalAlignment="Left" Margin="22,20,0,24"
Name="backButton" Width="75"><</Button>
<Button HorizontalAlignment="Left" Margin="116,20,0,24"
Name="nextButton" Width="75">></Button>
<Button HorizontalAlignment="Right" Margin="0,21,46,24"
Name="saveButton" Width="110">Save changes</Button>
3. Compile o projeto.
2. Expanda o nó Produto.
3. Neste exemplo, alguns campos não serão exibidos, portanto, clique no menu
suspenso ao lado dos seguintes nós e selecione Nenhum:
ProductCategoryID
ProductModelID
ThumbnailPhotoFileName
rowguid
ModifiedDate
7 Observação
5. Na janela Fontes de Dados, arraste o nó Produto para a linha de grade sob a linha
que contém os botões.
O Visual Studio gera XAML que define um conjunto de controles associados aos
dados na tabela Produtos. Também gera um código que carrega os dados. Para
mais informações sobre o XAML e o código gerados, consulte Associar controles
WPF a dados no Visual Studio.
C#
C#
private AdventureWorksProductsEditor.AdventureWorksLTDataSet
AdventureWorksLTDataSet;
private
AdventureWorksProductsEditor.AdventureWorksLTDataSetTableAdapters.P
roductTableAdapter adventureWorksLTDataSetProductTableAdapter;
private System.Windows.Data.CollectionViewSource productViewSource;
adventureWorksLTDataSetProductTableAdapter.Fill(AdventureWorksLTDat
aSet.Product);
productViewSource = ((System.Windows.Data.CollectionViewSource)
(this.FindResource("productViewSource")));
productViewSource.View.MoveCurrentToFirst();
}
C#
C#
if (productViewSource.View.CurrentPosition > 0)
{
productViewSource.View.MoveCurrentToPrevious();
}
C#
C#
if (productViewSource.View.CurrentPosition <
((CollectionView)productViewSource.View).Count - 1)
{
productViewSource.View.MoveCurrentToNext();
}
C#
C#
adventureWorksLTDataSetProductTableAdapter.Update(AdventureWorksLTD
ataSet.Product);
7 Observação
Testar o aplicativo
Crie e execute o aplicativo. Verifique se você pode exibir e atualizar registros de
produtos.
1. Pressione F5.
Você pode clicar nos botões > ou < para navegar em outros registros de
produto.
2. Em um dos registros de produto, altere o valor Tamanho e clique em Salvar
Alterações.
5. Feche o aplicativo.
Próximas etapas
Depois de completar este passo a passo, você poderá realizar as seguintes tarefas
relacionadas:
Saiba como usar a janela Fontes de Dados no Visual Studio para associar controles
do WPF a outros tipos de fontes de dados. Para mais informações, consulte
Associar controles do WPF a um serviço de dados do WCF.
Saiba como usar a janela Fontes de Dados no Visual Studio para exibir dados
relacionados (isto é, dados em uma relação pai-filho) em controles do WPF. Para
mais informações, consulte Passo a passo: exibir dados relacionados em um
aplicativo WPF.
Conteúdo relacionado
Associar controles WPF a dados no Visual Studio
Ferramentas de conjunto de dados no Visual Studio
Visão geral da vinculação de dados
Associar controles do WPF a um WCF
Data Service
Artigo • 10/04/2023
Aplica-se a: Visual Studio Visual Studio para Mac Visual Studio Code
Neste passo a passo, você criará um aplicativo WPF que contém controles de associação
de dados. Os controles estão associados a registros de clientes que são encapsulados
em um WCF Data Service. Você também adicionará botões que os clientes podem usar
para exibir e atualizar registros.
Criando botões que navegam para a frente e para trás nos registros de clientes.
Criando um botão que salva as alterações dos dados nos controles para o e a
fonte de dados subjacente.
7 Observação
Seu computador pode mostrar diferentes nomes ou locais para alguns dos
elementos de interface do usuário do Visual Studio neste artigo. Você pode estar
usando outra edição do Visual Studio ou outras configurações de ambiente. Para
obter mais informações, confira Personalizar o IDE.
Pré-requisitos
Você precisará 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 AdventureWorksLT anexado a ele. Para baixar
o banco de dados, consulte os bancos de dados de exemplo do AdventureWorks
Conhecimento prévio dos conceitos a seguir também é útil, mas não é necessário para
concluir o passo a passo:
Associação de dados do WPF. Para obter mais informações, confira Visão geral de
associação de dados.
8. Clique em Concluir.
Criar o serviço
Crie um Serviço de Dados do WCF para expor os dados no Modelo de Dados de
Entidade a um aplicativo WPF:
Configurar o serviço
Você deve configurar o serviço para operar no Modelo de Dados de Entidade que você
criou:
C#
O Visual Studio adiciona nós que representam os dados retornados pelo serviço à
janela Fontes de Dados.
XAML
<Grid.RowDefinitions>
<RowDefinition Height="75" />
<RowDefinition Height="525" />
</Grid.RowDefinitions>
<Button HorizontalAlignment="Left" Margin="22,20,0,24"
Name="backButton" Width="75"><</Button>
<Button HorizontalAlignment="Left" Margin="116,20,0,24"
Name="nextButton" Width="75">></Button>
<Button HorizontalAlignment="Right" Margin="0,21,46,24"
Name="saveButton" Width="110">Save changes</Button>
3. Compile o projeto.
2. Expanda o nó SalesOrderHeaders.
3. Neste exemplo, alguns campos não serão exibidos, portanto, clique no menu
suspenso ao lado dos seguintes nós e selecione Nenhum:
CreditCardApprovalCode
ModifiedDate
OnlineOrderFlag
RevisionNumber
rowguid
Essa ação impede que o Visual Studio crie controles de associação de dados para
esses nós na etapa seguinte. Para este passo a passo, pressupõe-se que o usuário
final não precise ver esses dados.
ID da Ordem de Venda
C#
C#
private AdventureWorksService.AdventureWorksLTEntities
dataServiceClient;
private
System.Data.Services.Client.DataServiceQuery<AdventureWorksService.
SalesOrderHeader> salesQuery;
private CollectionViewSource ordersViewSource;
ordersViewSource = ((CollectionViewSource)
(this.FindResource("salesOrderHeadersViewSource")));
ordersViewSource.Source = salesQuery.Execute();
ordersViewSource.View.MoveCurrentToFirst();
}
Navegar pelos registros de vendas
Adicione o código que permite aos usuários rolem nos registros de vendas, usando os
botões < e >.
C#
C#
if (ordersViewSource.View.CurrentPosition > 0)
ordersViewSource.View.MoveCurrentToPrevious();
C#
C#
if (ordersViewSource.View.CurrentPosition <
((CollectionView)ordersViewSource.View).Count - 1)
{
ordersViewSource.View.MoveCurrentToNext();
}
C#
C#
AdventureWorksService.SalesOrderHeader currentOrder =
(AdventureWorksService.SalesOrderHeader)ordersViewSource.View.Curre
ntItem;
dataServiceClient.UpdateObject(currentOrder);
dataServiceClient.SaveChanges();
Testar o aplicativo
Compile e execute o aplicativo para verificar se é possível exibir e atualizar os registros
do cliente:
2. Pressione Ctrl++F5.
Você pode clicar nos botões > ou < para navegar em outros registros de
vendas.
8. Feche o aplicativo.
Próximas etapas
Depois de completar este passo a passo, você poderá realizar as seguintes tarefas
relacionadas:
Saiba como usar a janela Fontes de Dados no Visual Studio para associar controles
do WPF a outros tipos de fontes de dados. Para obter mais informações, consulte
Associar controles WPF a um conjunto dedados.
Saiba como usar a janela Fontes de Dados no Visual Studio para exibir dados
relacionados (isto é, dados em uma relação pai-filho) em controles do WPF. Para
obter mais informações, consulte Passo a passo: exibindo dados relacionados em
um aplicativoWPF.
Confira também
Associar controles WPF a dados no Visual Studio
Associar controles do WPF a um conjunto de dados
Visão geral do WCF (.NET Framework)
Visão geral do Entity Framework (.NET Framework)
Visão geral da Associação de Dados (.NET Framework)
Criar tabelas de pesquisa em aplicativos
WPF do .NET Framework
Artigo • 12/04/2024
7 Observação
Por exemplo, considere uma tabela de Orders em um banco de dados de vendas. Cada
registro na tabela Orders inclui um CustomerID que indica qual cliente fez o pedido. A
CustomerID é uma chave é estrangeira que aponta para um registro de cliente na tabela
Customers . Ao exibir uma lista de pedidos da tabela Orders , talvez seja mais
Serviço de Dados do WCF, serviço WCF ou serviço Web. Para obter mais
informações, veja Como conectar-se a dados em um serviço.
7 Observação
3. No menu Dados, clique em Mostrar Fontes de Dados para abrir a janela Fontes de
Dados.
4. Expanda os nós na janela Fontes de Dados até que você consiga ver a tabela pai
ou o objeto e a tabela ou o objeto filho relacionado.
7 Observação
6. Expanda o nó filho.
7. No nó filho, clique no menu da lista suspensa do item que relaciona os dados filho
e pai. (No exemplo anterior, este é o nó CustomerID). Selecione um dos seguintes
tipos de controles que dão suporte à associação de pesquisa:
ComboBox
ListBox
ListView
7 Observação
7 Observação
O Visual Studio gera o XAML que cria novos controles associados a dados para
cada um dos itens que você arrasta. O XAML também adiciona um novo
CollectionViewSource para a tabela filho ou o objeto aos recursos da reprodução
automática. Em algumas fontes de dados, o Visual Studio também gera código
para carregar dados na tabela ou no objeto. Para obter mais informações, confira
Associar controles WPF a dados no Visual Studio.
ノ Expandir a tabela
Conteúdo relacionado
Associar controles WPF a dados no Visual Studio
Exibir dados relacionados em aplicativos WPF
Passo a passo: exibindo dados relacionados em um aplicativo WPF
Comentários
Esta página foi útil? Yes No
Exibir dados relacionados em aplicativos
WPF
Artigo • 04/05/2023
Aplica-se a: Visual Studio Visual Studio para Mac Visual Studio Code
7 Observação
Em alguns aplicativos, talvez você queira trabalhar com dados provenientes de várias
tabelas ou entidades relacionadas entre si em uma relação pai-filho. Por exemplo, talvez
você queira exibir uma grade que exibe clientes de uma tabela Customers . Quando o
usuário seleciona um cliente específico, outra grade exibe os pedidos desse cliente de
uma tabela Orders relacionada.
Você pode criar controles associados a dados que exibem dados relacionados
arrastando itens da janela Fontes de Dados para o Designer do WPF.
O Visual Studio gera o XAML que cria novos controles associados a dados para
cada item que você arrasta. O XAML também adiciona um novo
CollectionViewSource para a tabela pai ou o objeto aos recursos da reprodução
automática. Em algumas fontes de dados, o Visual Studio também gera código
para carregar dados na tabela pai ou no objeto. Para obter mais informações,
confira Associar controles WPF a dados no Visual Studio.
O Visual Studio gera o XAML que cria novos controles associados a dados para
cada um dos itens que você arrasta. O XAML também adiciona um novo
CollectionViewSource para a tabela filho ou o objeto aos recursos da reprodução
automática. Esse novo CollectionViewSource é associado à propriedade da tabela
pai ou objeto que você acabou de arrastar para o designer. Em algumas fontes de
dados, o Visual Studio também gera código para carregar dados na tabela filho ou
no objeto.
7 Observação
Use a janela Fontes de Dados para associar uma imagem em um banco de dados a um
controle em seu aplicativo. Por exemplo, você pode associar uma imagem a um controle
Image em um aplicativo WPF ou a um controle PictureBox em um aplicativo do
Windows Forms.
2. Na janela Fontes de Dados, expanda a tabela ou objeto desejado para exibir suas
colunas ou propriedades.
Dica
Conteúdo relacionado
Associar controles WPF a dados no Visual Studio
Vincular controles do Windows Forms a
dados em aplicativos do .NET
Framework
Artigo • 12/01/2024
7 Observação
Dica
Se a janela Fontes de Dados não estiver visível, você pode abri-la escolhendo
Exibir>Outras Janelas>Fontes de Dados ou pressionando Shift+Alt+D. Você deve
ter um projeto aberto no Visual Studio para ver a janela Fontes de Dados.
Antes de arrastar os itens, você pode definir o tipo de controle ao qual deseja associá-
los. Valores diferentes serão exibidos caso você escolha a própria tabela ou uma coluna
individual. Você também pode definir valores personalizados. Em uma tabela, Detalhes
significa que cada coluna está associada a um controle separado.
Componente BindingSource
O controle BindingNavigator fornece uma interface do usuário para navegar por dados
exibidos por um aplicativo do Windows.
Você também pode arrastar itens da janela Fontes de Dados aos controles que já estão
em um formulário para associar o controle aos dados. Um controle que já está
associado aos dados tem suas associações de dados redefinidas para o item mais
recente que foi arrastado para ele. Para serem destinos de soltar válidos, os controles
devem ser capazes de exibir o tipo de dados subjacente do item arrastado para ele a
partir da janela Fontes de Dados. Por exemplo, não é válido arrastar um item que tenha
um tipo de dados de DateTime para um CheckBox, porque CheckBox não é capaz de
exibir uma data.
) Importante
Observe também que cada controle tem uma marca inteligente. Essa marca permite
personalizações que se aplicam somente a esse controle.
Conteúdo relacionado
Associando controles a dados no Visual Studio
Associação de dados no Windows Forms (.NET Framework)
Filtrar e classificar dados em um
aplicativo do Windows Forms do .NET
Framework
Artigo • 05/11/2024
7 Observação
Filtre dados definindo a propriedade Filter como uma expressão de cadeia de caracteres
que retorna os registros desejados.
Classifique dados definindo a propriedade Sort como o nome da coluna na qual deseja
classificar; acrescente DESC para classificar em ordem decrescente ou ASC para
classificar em ordem crescente.
7 Observação
C#
Conteúdo relacionado
Associar controles a dados no Visual Studio
Comentários
Esta página foi útil? Yes No
Aplica-se a: Visual Studio Visual Studio para Mac Visual Studio Code
7 Observação
salvamento.
O código a seguir usa uma consulta LINQ (Consulta Integrada à Linguagem) para iterar
todos os componentes BindingSource e chamar o método EndEdit para cada
BindingSource um em um formulário.
C#
C#
C#
C#
EndEditOnAllBindingSources();
Conteúdo relacionado
Associar controles do Windows Forms a dados no Visual Studio
Atualização hierárquica
Criar tabelas de pesquisa em aplicativos
do Windows Forms
Artigo • 04/05/2023
Aplica-se a: Visual Studio Visual Studio para Mac Visual Studio Code
7 Observação
Você pode criar tabelas de pesquisa arrastando o nó principal de uma tabela pai (da
janela Fontes de Dados) para um controle em seu formulário que já está associado à
coluna na tabela filho relacionada.
Por exemplo, considere uma tabela de Orders em um banco de dados de vendas. Cada
registro na tabela Orders inclui um CustomerID que indica qual cliente fez o pedido. A
CustomerID é uma chave é estrangeira que aponta para um registro de cliente na tabela
Customers . Nesse cenário, você expande a tabela Orders na janela Fontes de Dados e
define o nó principal como Detalhes. Em seguida, define a coluna CustomerID para usar
um ComboBox (ou qualquer outro controle que dê suporte à associação de pesquisa) e
arrasta o nó Orders para o formulário. Por fim, você arrasta o nó Customers para o
controle associado à coluna relacionada; nesse caso, o ComboBox associado à coluna
CustomerID .
7 Observação
2. Expanda os nós na janela Fontes de Dados até que você possa ver a tabela pai e
todas as suas colunas, a tabela filho relacionada e todas as suas colunas.
7 Observação
DisplayMember O Visual Studio define essa propriedade para a primeira coluna após a
chave primária que tem um tipo de dado de cadeia da tabela que você
arrasta para o controle.
SelectedValue O Visual Studio define essa propriedade como a coluna original que foi
solta da janela Fontes de Dados.
Confira também
Associar controles do Windows Forms a dados no Visual Studio
Criar um formulário do Windows Forms
do .NET Framework para pesquisar
dados com o ADO.NET
Artigo • 24/07/2024
7 Observação
Criar controles que exibem dados arrastando itens da janela Fontes de Dados para
um formulário.
7 Observação
Pré-requisitos
Você precisa ter a carga de trabalho Armazenamento e processamento de dados
instalada. Confira Modificar o Visual Studio.
Este passo a passo usa o SQL Server Express LocalDB e o banco de dados de exemplo
da Northwind.
1. Se você não tiver SQL Server Express LocalDB, instale-o por meio da página de
download do SQL Server Express ou usando o Instalador do Visual Studio. No
Instalador do Visual Studio, você pode instalar o SQL Server Express LocalDB
como parte da carga de trabalho Armazenamento e processamento de dados ou
como um componente individual.
1. Para abrir a janela Fontes de Dados, use a pesquisa rápida (Ctrl+Q) e pesquise
Fontes de Dados.
2. Na janela Fontes de Dados, selecione Adicionar Nova Fonte de Dados para iniciar
o assistente de Configuração de Fonte de Dados.
Criar o formulário
Você pode criar controles de associação de dados arrastando itens da janela Fontes de
Dados para um formulário:
SQL
SELECT CustomerID, CompanyName, ContactName, ContactTitle,
Address, City, Region, PostalCode, Country, Phone, Fax
FROM Customers
WHERE City = @City
7 Observação
Testar o aplicativo
A execução do aplicativo abre o formulário e deixa-o pronto para receber o parâmetro
como entrada:
A grade de dados é preenchida com clientes que atendem aos critérios. Neste
exemplo, a grade de dados exibe os clientes que têm o valor Londres na coluna
Cidade.
Próximas etapas
Dependendo dos requisitos de aplicativo, existem várias etapas que você talvez queira
realizar após criar um formulário parametrizado. Entre algumas das melhorias que você
poderia fazer nessa explicação passo a passo estão:
Adicionar controles que exibem dados relacionados. Para obter mais informações,
confira Relações em conjunto de dados abaixo.
Comentários
Esta página foi útil? Yes No
Criar um controle de usuário do
Windows Forms do .NET Framework
que dê suporte à associação de dados
simples
Artigo • 24/07/2024
7 Observação
ノ Expandir a tabela
passo a passo.)
Este passo a passo cria um controle simples que exibe dados de uma única coluna em
uma tabela. Este exemplo usa a coluna Phone da tabela Customers do banco de dados
de exemplo Northwind. O controle de usuário simples exibe números de telefone de
clientes em um formato de número de telefone padrão usando um MaskedTextBox e
configurando a máscara para um número de telefone.
Definir a coluna Telefone na janela Fontes de Dados para usar o novo controle.
Pré-requisitos
Para concluir este passo a passo, você precisa das cargas de trabalho de
Desenvolvimento de área de trabalho do .NET e Armazenamento de dados e
processamento instaladas no Visual Studio. Para instalá-las, abra Instalador do Visual
Studio e escolha Modificar (ou Mais>Modificar) ao lado da versão do Visual Studio que
você deseja modificar. Confira Modificar o Visual Studio.
Este passo a passo usa o SQL Server Express LocalDB e o banco de dados de exemplo
da Northwind.
1. Se você não tiver SQL Server Express LocalDB, instale-o por meio da página de
download do SQL Server Express ou usando o Instalador do Visual Studio. No
Instalador do Visual Studio, você pode instalar o SQL Server Express LocalDB
como parte da carga de trabalho Armazenamento e processamento de dados ou
como um componente individual.
C#
using System.Windows.Forms;
namespace CS
{
[System.ComponentModel.DefaultBindingProperty("PhoneNumber")]
public partial class PhoneNumberBox : UserControl
{
public string PhoneNumber
{
get{ return maskedTextBox1.Text; }
set{ maskedTextBox1.Text = value; }
}
public PhoneNumberBox()
{
InitializeComponent();
}
}
}
1. Para abrir a janela Fontes de Dados, no menu Dados, selecione Mostrar Fontes de
Dados.
2. Na janela Fontes de Dados, selecione Adicionar Nova Fonte de Dados para iniciar
o assistente de Configuração de Fonte de Dados.
5. Se o banco de dados exigir uma senha, selecione a opção para incluir dados
confidenciais e, em seguida, selecione Avançar.
6. Na página Salvar cadeia de conexão no arquivo de Configuração de Aplicativo,
clique em Avançar.
Próximas etapas
Dependendo dos requisitos do aplicativo, existem várias etapas que você pode realizar
após criar um controle que dê suporte à associação de dados. Algumas etapas seguintes
típicas incluem:
Conteúdo relacionado
Associar controles do Windows Forms a dados no Visual Studio
Definir o controle a ser criado quando arrastado da janela Fontes de Dados
Comentários
Esta página foi útil? Yes No
Criar um controle de usuário do
Windows Forms do .NET Framework
que dá suporte à associação de dados
complexos com o ADO.NET
Artigo • 22/12/2023
Aplica-se a: Visual Studio Visual Studio para Mac Visual Studio Code
7 Observação
DataGridView ou ListBox.
Para obter mais informações sobre a criação de controles, confira Desenvolver controles
do Windows Forms no tempo de design.
ノ Expandir a tabela
Uso do atributo de associação de dados
Este passo a passo cria um controle complexo que exibe linhas de dados de uma tabela.
Este exemplo usa a tabela Customers do banco de dados de exemplo Northwind. O
controle de usuário complexo exibirá a tabela de clientes em uma DataGridView no
controle personalizado.
Defina a tabela Clientes na janela Fontes de Dados para usar o novo controle
complexo.
Pré-requisitos
Para concluir este passo a passo, você precisa das cargas de trabalho de
Desenvolvimento de área de trabalho do .NET e Armazenamento de dados e
processamento instaladas no Visual Studio. Para instalá-las, abra Instalador do Visual
Studio e escolha Modificar (ou Mais>Modificar) ao lado da versão do Visual Studio que
você deseja modificar. Confira Modificar o Visual Studio.
Este passo a passo usa o SQL Server Express LocalDB e o banco de dados de exemplo
da Northwind.
1. Se você não tiver SQL Server Express LocalDB, instale-o por meio da página de
download do SQL Server Express ou usando o Instalador do Visual Studio. No
Instalador do Visual Studio, você pode instalar o SQL Server Express LocalDB
como parte da carga de trabalho Armazenamento e processamento de dados ou
como um componente individual.
C#
C#
using System.Windows.Forms;
namespace CS
{
[System.ComponentModel.ComplexBindingProperties("DataSource",
"DataMember")]
public partial class ComplexDataGridView : UserControl
{
public object DataSource
{
get{ return dataGridView1.DataSource; }
set{ dataGridView1.DataSource = value; }
}
public ComplexDataGridView()
{
InitializeComponent();
}
}
}
3. No menu Compilação, escolha Compilar Solução.
1. Para abrir a janela Fontes de Dados, no menu Dados, selecione Mostrar Fontes de
Dados.
2. Na janela Fontes de Dados, selecione Adicionar Nova Fonte de Dados para iniciar
o assistente de Configuração de Fonte de Dados.
5. Se o banco de dados exigir uma senha, selecione a opção para incluir dados
confidenciais e, em seguida, clique em Avançar.
Executar o aplicativo
Pressione F5 para executar o aplicativo.
Próximas etapas
Dependendo dos requisitos do aplicativo, existem várias etapas que você pode realizar
após criar um controle com suporte a associação de dados. Algumas etapas seguintes
típicas incluem:
Confira também
Associar controles do Windows Forms a dados no Visual Studio
Definir o controle a ser criado quando arrastado da janela Fontes de Dados
Controles dos Windows Forms
Criar um controle de usuário do
Windows Forms compatível com
associação de dados de consulta
Artigo • 04/05/2023
Aplica-se a: Visual Studio Visual Studio para Mac Visual Studio Code
7 Observação
Este passo a passo cria um controle de pesquisa que se associa aos dados de duas
tabelas. Este exemplo usa as tabelas Customers e Orders do banco de dados de
exemplo Northwind. O controle de pesquisa é associado ao campo CustomerID da
tabela Orders . Ele usa este valor para pesquisar CompanyName na tabela Customers .
Pré-requisitos
Este passo a passo usa o SQL Server Express LocalDB e o banco de dados de exemplo
da Northwind.
1. Se você não tiver SQL Server Express LocalDB, instale-o por meio da página de
download do SQL Server Express ou usando o Instalador do Visual Studio. No
Instalador do Visual Studio, você pode instalar o SQL Server Express LocalDB
como parte da carga de trabalho Armazenamento e processamento de dados ou
como um componente individual.
1. Mude o controle LookupBox para exibição de código. (No menu Exibir, escolha
Código.)
C#
C#
using System.Windows.Forms;
namespace CS
{
[System.ComponentModel.LookupBindingProperties("DataSource",
"DisplayMember", "ValueMember", "LookupMember")]
public partial class LookupBox : UserControl
{
public object DataSource
{
get{ return comboBox1.DataSource; }
set{ comboBox1.DataSource = value; }
}
public LookupBox()
{
InitializeComponent();
}
}
}
1. Para abrir a janela Fontes de Dados, no menu Dados, clique em Mostrar Fontes de
Dados.
2. Na janela Fontes de Dados, selecione Adicionar Nova Fonte de Dados para iniciar
o assistente de Configuração de Fonte de Dados.
5. Se o banco de dados exigir uma senha, selecione a opção para incluir dados
confidenciais e, em seguida, clique em Avançar.
6. Na página Salvar cadeia de conexão no arquivo de Configuração de Aplicativo,
clique em Avançar.
7. Clique em OK.
Executar o aplicativo
Pressione F5 para executar o aplicativo.
Confira também
Associar controles do Windows Forms a dados no Visual Studio
Passar dados entre formulários
Artigo • 30/07/2024
7 Observação
7 Observação
Este tutorial demonstra apenas uma maneira de passar dados entre formulários.
Existem outras opções para passar dados para um formulário, incluindo criar um
segundo construtor para receber dados ou criar uma propriedade pública que
pode ser definida com os dados do primeiro formulário.
Pré-requisitos
Para concluir este passo a passo, você precisa das cargas de trabalho de
Desenvolvimento de área de trabalho do .NET e Armazenamento de dados e
processamento instaladas no Visual Studio. Para instalá-las, abra Instalador do Visual
Studio e escolha Modificar (ou Mais>Modificar) ao lado da versão do Visual Studio que
você deseja modificar. Confira Modificar o Visual Studio.
Este tutorial usa o SQL Server Express LocalDB e o banco de dados de exemplo da
Northwind.
1. Se você não tiver SQL Server Express LocalDB, instale-o por meio da página de
download do SQL Server Express ou usando o Instalador do Visual Studio. No
Instalador do Visual Studio, o SQL Server Express LocalDB pode ser instalado como
parte da carga de trabalho Armazenamento e processamento de dados ou como
um componente individual.
2. Na janela Fontes de Dados, selecione Adicionar Nova Fonte de Dados para iniciar
o assistente de Configuração de Fonte de Dados.
6. Se o banco de dados exigir uma senha e a opção para incluir dados confidenciais
estiver habilitada, selecione a opção e selecione Avançar.
7. Na página Salvar cadeia de conexão no arquivo de Configuração de Aplicativo,
clique em Avançar.
5. Adicione uma cláusula WHERE à consulta para retornar Orders com base no
CustomerID . A consulta deve ser semelhante ao seguinte:
SQL
7 Observação
6. Clique em Avançar.
9. Clique em Concluir.
C#
C#
C#
C#
SelectedRowView =
(System.Data.DataRowView)customersBindingSource.Current;
SelectedRow = (NorthwindDataSet.CustomersRow)SelectedRowView.Row;
Executar o aplicativo
Pressione F5 para executar o aplicativo.
Clique duas vezes em um registro de cliente no Form1 para abrir o Form2 com
pedidos do cliente.
Próximas etapas
Dependendo dos requisitos de aplicativo, existem várias etapas que você talvez queira
realizar após passar dados entre formulários. Entre algumas das melhorias que você
poderia fazer nesse tutorial estão:
Adicionar funcionalidade para salvar dados de volta no banco de dados. Para obter
mais informações, consulte Salvar dados no banco de dados.
Conteúdo relacionado
Associar controles do Windows Forms a dados no Visual Studio
Comentários
Esta página foi útil? Yes No
Associar objetos como fontes de dados
no Visual Studio
Artigo • 04/05/2023
Aplica-se a: Visual Studio Visual Studio para Mac Visual Studio Code
7 Observação
O Visual Studio fornece ferramentas de tempo de design para trabalhar com objetos
personalizados como a fonte de dados em seu aplicativo. Quando você deseja
armazenar dados de um banco de dados em um objeto que você associa a controles de
interface do usuário, a abordagem recomendada é usar o Entity Framework para gerar a
classe ou classes. O Entity Framework gera automaticamente todo o código de controle
de alterações clichê, o que significa que todas as alterações nos objetos locais são
mantidas automaticamente no banco de dados quando você chama AcceptChanges no
objeto DbSet. Para obter mais informações, confira Documentação do Entity
Framework .
Dica
A maneira mais fácil de carregar seus objetos personalizados com os dados é chamar o
método TableAdapter.GetData , percorrer a coleção de linhas na tabela de dados
retornada e preencher cada objeto com os valores em cada linha. Você pode criar um
método GetData que retorna uma tabela de dados populada para qualquer consulta
adicionada a um TableAdapter.
7 Observação
C#
C#
if (customerRow.IsAddressNull() == false)
{
currentCustomer.Address = customerRow.Address;
}
if (customerRow.IsCityNull() == false)
{
currentCustomer.City = customerRow.City;
}
if (customerRow.IsContactNameNull() == false)
{
currentCustomer.ContactName = customerRow.ContactName;
}
if (customerRow.IsContactTitleNull() == false)
{
currentCustomer.ContactTitle = customerRow.ContactTitle;
}
if (customerRow.IsCountryNull() == false)
{
currentCustomer.Country = customerRow.Country;
}
if (customerRow.IsFaxNull() == false)
{
currentCustomer.Fax = customerRow.Fax;
}
if (customerRow.IsPhoneNull() == false)
{
currentCustomer.Phone = customerRow.Phone;
}
if (customerRow.IsPostalCodeNull() == false)
{
currentCustomer.PostalCode = customerRow.PostalCode;
}
if (customerRow.IsRegionNull() == false)
{
currentCustomer.Region = customerRow.Region;
}
LoadOrders(currentCustomer);
customerBindingSource.Add(currentCustomer);
}
}
Ao criar uma classe de coleção personalizada para objetos, sugerimos que você herde
de BindingList<T>. Essa classe genérica fornece funcionalidade para administrar sua
coleção, bem como a capacidade de gerar eventos que enviam notificações para a
infraestrutura de associação de dados no Windows Forms.
A coleção gerada automaticamente em BindingSource usa um BindingList<T> para a
respectiva coleção tipada. Se o aplicativo não exigir funcionalidade adicional, você
poderá manter sua coleção dentro do BindingSource. Para obter mais informações,
confira a propriedade List da classe BindingSource.
7 Observação
O seguinte código mostra como criar a classe para uma coleção fortemente tipada de
objetos Order :
C#
C#
/// <summary>
/// A collection of Orders
/// </summary>
public class Orders: System.ComponentModel.BindingList<Order>
{
// Add any additional functionality required by your collection.
}
7 Observação
C#
C#
O seguinte código mostra como adicionar objetos a uma coleção tipada que herda de
BindingList<T>:
7 Observação
C#
C#
7 Observação
C#
C#
O Visual Studio cria métodos DBDirect que podem ser executados diretamente no
banco de dados. Esses métodos não exigem objetos DataSet ou DataTable.
TableAdapter.Delete Exclui registros existentes do banco de dados com base nos valores de
coluna originais passados como parâmetros de método.
Para salvar dados de uma coleção de objetos, faça loop pela coleção de objetos (por
exemplo, usando um loop for-next). Envie os valores de cada objeto para o banco de
dados usando os métodos DBDirect do TableAdapter.
C#
C#
Confira também
Associar controles a dados no Visual Studio
Personalizar como o Visual Studio cria
legendas para controles associados
a dados em aplicativos do .NET
Framework
Artigo • 12/01/2024
7 Observação
Você pode personalizar a forma como esses rótulos são criados definindo os valores
SmartCaptionExpression, SmartCaptionReplacement e SmartCaptionSuffix na chave
do Registro HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\16.0\Data
Designers.
7 Observação
ノ Expandir a tabela
SmartCaptionExpression A expressão regular que você usa para corresponder aos seus
padrões.
A tabela a seguir lista as configurações padrão internas para esses valores de registro.
ノ Expandir a tabela
U Cuidado
Tenha muito cuidado ao fazer qualquer coisa no Editor de registro. Faça backup do
registro antes de editá-lo. Se o Editor de registro for usado incorretamente, você
poderá causar sérios problemas que podem obrigar a reinstalação do sistema
operacional. A Microsoft não garante que seja possível resolver os problemas
causados pelo uso incorreto do Editor de registro. Use o Editor de Registro por sua
conta e risco.
Para obter informações sobre backup, edição e restauração do registro, confira
Informações de registro do Windows para usuários avançados .
3. Expanda o nó HKEY_CURRENT_USER>Software>Microsoft>VisualStudio.
4. Clique com o botão direito do mouse no nó 16.0 e crie uma nova Chave chamada
Data Designers .
5. Clique com o botão direito do mouse no nó Designers de Dados e crie três novos
valores da cadeia de caracteres:
SmartCaptionExpression
SmartCaptionReplacement
SmartCaptionSuffix
7. Insira a expressão regular que você deseja que a janela Fontes de Dados use.
11. Insira todos os caracteres que você quer que apareçam no final da legenda.
Na próxima vez que você arrastar itens da janela Fontes de Dados, os rótulos de
legenda serão criados usando os novos valores de registro fornecidos.
3. Expanda o nó HKEY_CURRENT_USER>Software>Microsoft>VisualStudio.
4. Clique com o botão direito do mouse no nó 16.0 e crie uma nova Chave chamada
Data Designers .
5. Clique com o botão direito do mouse no nó Designers de Dados e crie três novos
valores da cadeia de caracteres:
SmartCaptionExpression
SmartCaptionReplacement
SmartCaptionSuffix
Na próxima vez que você arrastar itens da janela Fontes de Dados, os rótulos de
legenda serão criados com legendas não modificadas.
Conteúdo relacionado
Associar controles a dados no Visual Studio
Serviços do Windows Communication
Foundation e WCF Data Services no
Visual Studio
Artigo • 01/11/2023
Aplica-se a: Visual Studio Visual Studio para Mac Visual Studio Code
O que é o WCF?
O WCF (Windows Communication Foundation) é uma estrutura unificada para criar
aplicativos distribuídos seguros, confiáveis, transacionados e interoperáveis. Ele substitui
tecnologias de comunicação entre processos mais antigas, como serviços Web ASMX,
Comunicação Remota do .NET, Serviços Empresariais (DCOM) e MSMQ. O WCF reúne a
funcionalidade de todas essas tecnologias em um modelo de programação unificado.
Isso simplifica a experiência de desenvolvimento de aplicativos distribuídos.
C#
C#
[ServiceContract]
public interface IService1
Você define funções ou métodos expostos por um serviço WCF marcando-os com um
atributo OperationContractAttribute.
C#
C#
[OperationContract]
string GetData(string value);
Além disso, você pode expor dados serializados marcando um tipo composto com um
atributo DataContractAttribute. Isso habilita a associação de dados em um cliente.
Depois que uma interface e seus métodos são definidos, eles são encapsulados em uma
classe que implementa a interface. Uma única classe de serviço WCF pode implementar
vários contratos de serviço.
Um serviço WCF é exposto para consumo por meio do que é conhecido como um ponto
de extremidade. O ponto de extremidade fornece a única maneira de se comunicar com
o serviço; você não pode acessar o serviço por meio de uma referência direta como faria
com outras classes.
Vários pontos de extremidade podem ser expostos para um único serviço WCF. Isso
permite que clientes diferentes se comuniquem com o mesmo serviço de maneiras
diferentes. Por exemplo, um serviço bancário pode fornecer um ponto de extremidade
para funcionários e outro para clientes externos, cada um usando um endereço,
associação e/ou contrato diferentes.
Cliente de WCF
Um cliente WCF consiste em um proxy que permite que um aplicativo se comunique
com um serviço WCF e um ponto de extremidade que corresponde a um ponto de
extremidade definido para o serviço. O proxy é gerado no lado do cliente no arquivo
app.config e inclui informações sobre os tipos e métodos expostos pelo serviço. Para
serviços que expõem vários pontos de extremidade, o cliente pode selecionar aquele
que melhor atenda às suas necessidades, por exemplo, para se comunicar por HTTP e
usar a Autenticação do Windows.
Depois que um cliente WCF for criado, você referencia o serviço em seu código da
mesma forma que faria com qualquer outro objeto. Por exemplo, para chamar o
método GetData mostrado anteriormente, você escreveria um código semelhante ao
seguinte:
C#
C#
returnString = client.GetData(textBox1.Text);
label1.Text = returnString;
}
Modelos do WCF
Os modelos do Visual Studio do WCF fornecem uma estrutura de classe básica para o
desenvolvimento de serviços. Vários modelos do WCF estão disponíveis na caixa de
diálogo Adicionar Novo Projeto. Eles incluem projetos lLibrary do serviço WCF, sites de
serviço do WCF e modelos de item de serviço do WCF.
Para saber mais sobre modelos do WCF, confira Modelos do Visual Studio do WCF.
Quando você inicia o depurador do Visual Studio (pressionando F5) para um projeto de
serviço WCF, a ferramenta Host de Serviço do WCF é iniciada automaticamente para
hospedar o serviço localmente. O Host de Serviço do WCF enumera os serviços em um
projeto de serviço WCF, carrega a configuração do projeto e cria uma instância de um
host para cada serviço encontrado.
Usando o Host de Serviço do WCF, você pode testar um serviço WCF sem escrever
nenhum código extra ou se comprometer com um host específico durante o
desenvolvimento.
Para saber mais sobre o Host de Serviço do WCF, consulte Host de serviço do WCF
(WcfSvcHost.exe).
Cliente de teste do WCF
O Cliente de Teste do WCF é uma ferramenta que permite testar parâmetros de teste,
enviar essa entrada a um serviço WCF e exibir a resposta retornada pelo serviço. Ele
fornece uma experiência de teste de serviço conveniente quando combinado com o
host de serviço WCF. Encontre a ferramenta na pasta %ProgramFiles(x86)%\Microsoft
Visual Studio\2017\Enterprise\Common7\IDE.
Para saber mais sobre o Cliente de Teste do WCF, consulte Cliente de teste do WCF
(WcfTestClient.exe).
A caixa de diálogo Adicionar Referência de Serviço permite que você insira o endereço
de um serviço ou pesquise um serviço definido em sua solução. A caixa de diálogo
retorna uma lista de serviços e as operações fornecidas por esses serviços. Ele também
permite que você defina o namespace pelo qual você fará referência aos serviços no
código.
7 Observação
Seu computador pode mostrar diferentes nomes ou locais para alguns dos
elementos de interface do usuário do Visual Studio neste artigo. Você pode estar
usando outra edição do Visual Studio ou outras configurações de ambiente. Para
obter mais informações, confira Personalizar o IDE.
C#
C#
7 Observação
3. Pesquise abaixo da marca <Client> para obter uma marca que começa com
<Endpoint> .
serviço.
7 Observação
Essa opção é definida por serviço. Se um método para um serviço for chamado de
forma assíncrona, todos os métodos deverão ser chamados de forma assíncrona.
7 Observação
Seu computador pode mostrar diferentes nomes ou locais para alguns dos
elementos de interface do usuário do Visual Studio neste artigo. Você pode estar
usando outra edição do Visual Studio ou outras configurações de ambiente. Para
obter mais informações, confira Personalizar o IDE.
4. Selecione um campo e clique na seta suspensa para exibir uma lista de controles
disponíveis para o tipo de dados.
5. Clique no tipo de controle ao qual você deseja associar.
7. Repita as etapas 4 a 6 para quaisquer outros campos que você deseja associar.
3. Selecione um nó para um tipo e clique na seta suspensa para exibir uma lista de
opções disponíveis.
Para evitar esse problema, os tipos em assemblies referenciados são compartilhados por
padrão. Se você quiser desabilitar o compartilhamento de tipo para um ou mais
assemblies, poderá fazer isso na caixa de diálogo Configurar Referências de Serviço.
4. Marque a caixa de seleção para cada assembly no qual você deseja habilitar o
compartilhamento de tipos. Para desabilitar o compartilhamento de tipo para um
assembly, deixe a caixa de seleção desmarcada.
Tópicos relacionados
Título Descrição
Passo a passo: criando um Serviço Fornece uma demonstração passo a passo da criação e do
WCF em Windows Forms uso de serviços WCF no Visual Studio.
Passo a passo: criando um serviço Fornece uma demonstração passo a passo de como criar e
de dados WCF com WPF e Entity usar WCF Data Services no Visual Studio.
Framework
Usando as ferramentas de Discute como criar e testar serviços WCF no Visual Studio.
desenvolvimento do WCF
Solução de problemas de Apresenta alguns erros comuns que podem ocorrer com
referências de serviço referências de serviço e como impedi-los.
Passo a passo: criando um aplicativo Fornece instruções passo a passo para criar um conjunto
de dados de N camadas de dados tipado e separar o código do TableAdapter e do
Título Descrição
Referência
System.ServiceModel
System.Data.Services
Confira também
Ferramentas de dados do Visual Studio para .NET
Trabalhe com um modelo conceitual
(WCF Data Services)
Artigo • 16/01/2024
Você pode usar modelos conceituais com aplicativos do WCF Data Services. Os tópicos
a seguir mostram como consultar dados por meio de um modelo conceitual.
ノ Expandir a tabela
Tópico Descrição
How to: Execute Data Service Queries Mostra como consultar um serviço de dados a partir
(Como executar consultas de serviço de de um aplicativo .NET.
dados)
Ao usar um modelo conceitual, você pode definir quais tipos de dados são válidos na
linguagem que corresponde ao seu domínio. Você pode definir dados válidos no
modelo ou adicionar validação às operações executadas em uma entidade ou serviço de
dados.
Os tópicos a seguir mostram como adicionar validação aos aplicativos do WCF Data
Services.
ノ Expandir a tabela
Tópico Descrição
Como interceptar mensagens de serviço Mostra como adicionar validação a uma operação de
de dados serviço de dados.
Os tópicos a seguir mostram como criar, atualizar e excluir dados executando operações
em entidades.
ノ Expandir a tabela
Tópico Descrição
Como adicionar, modificar e excluir Mostra como criar, atualizar e excluir dados de entidades
entidades em um serviço de dados.
Como definir relacionamentos entre Mostra como criar ou alterar relações em um serviço de
entidades dados.
Conteúdo relacionado
Serviços do Windows Communication Foundation e WCF Data Services no Visual
Studio
Consultar o serviço de dados
Conectar-se a dados em um serviço de
WCF
Artigo • 30/07/2024
Conecte seu aplicativo .NET Framework aos dados retornados de um serviço WCF
(Windows Communication Foundation) executando o Assistente de Configuração da
Fonte de Dados e selecionando Serviço na página Escolher um Tipo de Fonte de
Dados.
7 Observação
7 Observação
Seu computador pode mostrar diferentes nomes ou locais para alguns dos
elementos de interface do usuário do Visual Studio neste artigo. Você pode estar
usando outra edição do Visual Studio ou outras configurações de ambiente. Para
obter mais informações, confira Personalizar o IDE.
Pré-requisitos
As ferramentas do WCF não são instaladas com a carga de trabalho do .NET. Use o
Instalador do Visual Studio para modificar sua instalação. No instalador, escolha
Windows Communication Foundation em Componentes Individuais. Consulte
Modificar o Visual Studio.
Para conectar seu aplicativo a um serviço
1. No menu Dados, clique em Adicionar Nova Fonte de Dados.
3. Insira o endereço do serviço que você deseja usar ou clique em Descobrir para
localizar serviços na solução atual e selecione Ir.
4. Como opção, você pode digitar um novo Namespace no lugar do valor padrão.
7 Observação
6. Clique em Concluir.
Conteúdo relacionado
Associar controles a dados no Visual Studio
Associar controles do WPF a um WCF Data Service
Serviços do Windows Communication Foundation e WCF Data Services no Visual
Studio
Comentários
Esta página foi útil? Yes No
Passo a passo: criar um serviço WCF
simples no Windows Forms do .NET
Framework
Artigo • 16/01/2024
Este passo a passo demonstra como criar um serviço WCF (Windows Communication
Foundation) simples, testá-lo e acessá-lo de um aplicativo do Windows Forms do .NET
Framework.
7 Observação
Seu computador pode mostrar diferentes nomes ou locais para alguns dos
elementos de interface do usuário do Visual Studio neste artigo. Você pode estar
usando outra edição do Visual Studio ou outras configurações de ambiente. Para
obter mais informações, confira Personalizar o IDE.
Pré-requisitos
As ferramentas do WCF não são instaladas com a carga de trabalho do .NET. Use o
Instalador do Visual Studio para modificar sua instalação. No instalador, escolha
Windows Communication Foundation em Componentes Individuais. Consulte
Modificar o Visual Studio.
Criar um serviço
1. Abra o Visual Studio.
7 Observação
Isso cria um serviço de trabalho que pode ser testado e acessado. As duas
etapas a seguir demonstram como você pode modificar o método padrão
para usar um tipo de dados diferente. Em um aplicativo real, você também
adicionaria suas funções ao serviço.
C#
[OperationContract]
string GetData(int value);
C#
[OperationContract]
string GetData(string value);
C#
public string GetData(int value)
{
return string.Format("You entered: {0}", value);
}
C#
Teste o serviço
1. Pressione F5 para executar o serviço. Um formulário do Cliente de Teste do WCF
aparece e carrega o serviço.
Acessar o serviço
C#
returnString = client.GetData(textBox1.Text);
label1.Text = returnString;
}
Este artigo lista soluções para problemas comuns que podem ocorrer quando você está
trabalhando com referências ao Windows Communication Foundation (WCF) ou ao WCF
Data Services no Visual Studio.
7 Observação
Você deve desativar a autenticação NTLM somente para sites que contêm
exclusivamente serviços WCF. A segurança dos serviços WCF é gerenciada pela
configuração no arquivo web.config. Dessa forma, a autenticação NTLM se torna
desnecessária.
Nível de acesso para a configuração de classes
geradas não tem efeito
A definição da opção Nível de acesso para classes geradas na caixa de diálogo
Configurar Referências de Serviço como Interno ou Amigo nem sempre pode
funcionar. Embora a opção pareça estar definida na caixa de diálogo, as classes de
suporte resultantes são geradas com um nível de acesso de Public . Essa é uma
limitação conhecida de determinados tipos, como aqueles serializados usando o
XmlSerializer.
Quando você adiciona pela primeira vez uma referência a um serviço WCF que faz parte
da solução atual, uma dependência de build explícita é adicionada entre o projeto de
serviço e o projeto do cliente de serviço. Isso garante que o cliente sempre acesse
binários de serviço atualizados, o que é importante principalmente para cenários de
depuração, como a depuração do código do cliente para o código de serviço.
Comentários
Esta página foi útil? Yes No
7 Observação
Para acessar a caixa de diálogo Configurar Referência de Serviço, clique com o botão
direito do mouse em uma referência de serviço no Gerenciador de Soluções e escolha
Configurar Referência de Serviço. Você também pode acessar a caixa de diálogo
clicando no botão Avançado na caixa de diálogo Adicionar Referência de Serviço.
Lista de tarefas
Para alterar o endereço em que um serviço WCF está hospedado, insira o novo
endereço no campo endereço.
Lista UIElement
Endereço
Atualiza o endereço Web em que uma referência de serviço procura um serviço. Por
exemplo, durante o desenvolvimento, o serviço pode ser hospedado em um servidor de
desenvolvimento e depois movido para um servidor de produção, exigindo uma
alteração de endereço.
7 Observação
7 Observação
Para projetos de site, essa opção é sempre definida como Public e não pode ser
alterada. Para obter mais informações, consulte Referências de serviço de solução
de problemas.
Determina se os tipos de contrato de mensagem são gerados para um cliente WCF. Para
obter mais informações sobre contratos de mensagens, consulte Usando contratos de
mensagem.
Tipo de coleção
Especifica o tipo de coleção de listas para um cliente WCF. O tipo padrão é Array.
7 Observação
Essa opção só deve ser usada para projetos destinados à versão 2.0 do .NET
Framework.
7 Observação
Consulte também
Como adicionar uma referência a um serviço Web
Windows Communication Foundation Services e WCF Data Services
Comentários
Esta página foi útil? Yes No
Para projetos .NET Framework, a referência de serviço permite que um projeto acesse um
ou mais WCF Data Services. Use a caixa de diálogo Adicionar Referência de Serviço
para procurar WCF Data Services na solução atual, localmente, em uma rede local ou na
Internet.
Para projetos do .NET Core, você pode usar o nó Serviços Conectados no Gerenciador
de Soluções para acessar o Provedor do Microsoft WCF Web Service Reference, que
permite gerenciar referências de serviço de dados do WCF (Windows Communication
Foundation).
7 Observação
Seu computador pode mostrar diferentes nomes ou locais para alguns dos
elementos de interface do usuário do Visual Studio neste artigo. Você pode estar
usando outra edição do Visual Studio ou outras configurações de ambiente. Para
obter mais informações, confira Personalizar o IDE.
Pré-requisitos
As ferramentas do WCF não são instaladas com a carga de trabalho do .NET. Use o
Instalador do Visual Studio para modificar sua instalação. No instalador, escolha
Windows Communication Foundation em Componentes Individuais. Confira Modificar
o Visual Studio.
7 Observação
Você também pode selecionar a URL na lista Endereço, que armazena as 15 URLs
anteriores nas quais os metadados de serviço válidos foram encontrados.
Uma barra de progresso é exibida quando a pesquisa está sendo executada. Você
pode interromper a pesquisa a qualquer momento clicando em Parar.
3. Na lista Serviços, expanda o nó para o serviço que você deseja usar e selecione um
conjunto de entidades.
7 Observação
Você também pode selecionar a URL na lista URI, que armazena as 15 URLs
anteriores nas quais os metadados de serviço válidos foram encontrados.
Uma barra de progresso é exibida quando a pesquisa está sendo executada. Você
pode interromper a pesquisa a qualquer momento clicando em Parar.
4. Na lista Serviços, expanda o nó para o serviço que você deseja usar e selecione um
conjunto de entidades.
2. Clique em Descobrir.
Todos os serviços (WCF Data Services e serviços WCF) na solução atual são
adicionados à lista Serviços.
3. Na lista Serviços, expanda o nó para o serviço que você deseja usar e selecione um
conjunto de entidades.
3. Clique em Descobrir.
Todos os serviços (WCF Data Services e serviços WCF) na solução atual são
adicionados à lista Serviços.
4. Na lista Serviços, expanda o nó para o serviço que você deseja usar e selecione um
conjunto de entidades.
7 Observação
Comentários
Esta página foi útil? Yes No
Métodos de DataContext (Designer de
Objeto Relacional)
Artigo • 18/03/2023
Aplica-se a: Visual Studio Visual Studio para Mac Visual Studio Code
Os métodos DataContext (no contexto das ferramentas LINQ to SQL no Visual Studio)
são os métodos da classe DataContext que executam procedimentos e funções
armazenados em um banco de dados.
A classe DataContext é uma classe LINQ to SQL que atua como um canal entre um
banco de dados SQL Server e as classes de entidade LINQ to SQL mapeadas para esse
banco de dados. A classe DataContext contém as informações da cadeia de conexão e
os métodos para se conectar a um banco de dados e manipular os dados no banco de
dados. Por padrão, a classe DataContext contém vários métodos que você pode chamar,
como o método SubmitChanges que envia dados atualizados das classes do LINQ to
SQL para o banco de dados. Você também pode criar métodos DataContext adicionais
que mapeiem para procedimentos armazenados e funções. Ou seja, a chamada desses
métodos personalizados executará a função ou o procedimento armazenado no banco
de dados para o qual o método DataContext está mapeado. Você pode adicionar novos
métodos à classe DataContext exatamente como adiciona métodos para estender
qualquer classe. No entanto, em discussões sobre os métodos DataContext no contexto
do Designer Relacional de Objetos, são os métodos DataContext que mapeiam para as
funções e procedimentos armazenados que estão sendo discutidos.
Painel Métodos
Os métodos DataContext que mapeiam para os procedimentos e funções armazenados
são exibidos no painel Métodos do Designer Relacional de Objetos. O painel Métodos
é o painel na lateral direita do painel Entidades (a superfície de design principal). O
painel de Métodos lista todos os métodos DataContext que você criou usando o
Designer Relacional de Objetos. Por padrão, o painel de Métodos está vazio. Arraste os
procedimentos ou funções armazenadas do Gerenciador de Servidores ou do
Gerenciador de Banco de Dados para o Designer Relacional de Objetos para criar
métodos DataContext e popular o painel de Métodos. Para obter mais informações,
consulte Como criar métodos DataContext mapeados para procedimentos e funções
armazenados (Designer Relacional de Objetos).
7 Observação
Abra e feche o painel de métodos clicando com o botão direito do mouse no
Designer Relacional de Objetos e depois clicando em Ocultar Painel de Métodos,
ou Mostrar Painel de Métodos, ou use ainda o atalho de teclado CTRL+1.
Crie esse tipo de método DataContext quando seu aplicativo precisar apenas
executar procedimentos armazenados e funções no banco de dados e retornar os
resultados. Para obter mais informações, consulte Como criar métodos
DataContext mapeados para procedimentos e funções armazenados (Designer
Relacional de Objetos), System.Data.Linq.ISingleResult<T> e IMultipleResults.
Crie esse tipo de método DataContext quando seu aplicativo precisar executar
procedimentos armazenados em vez de usar o comportamento padrão do LINQ to
SQL para salvar dados modificados entre uma classe de entidade e o banco de
dados. Para obter mais informações, confira Como atribuir procedimentos
armazenados para executar atualizações, inserções e exclusões (Designer
Relacional de Objetos).
7 Observação
Objetos que você arrasta do banco de dados para a superfície do Designer Relacional
de Objetos serão nomeados automaticamente, com base no nome dos objetos no
banco de dados. Se você arrastar o mesmo objeto mais de uma vez, um número será
acrescentado ao final do novo nome para diferenciar os nomes. Quando os nomes dos
objetos do banco de dados contêm espaços ou caracteres, que não são suportados no
Visual Basic ou no C#, o espaço ou o caractere inválido é substituído por um
sublinhado.
Confira também
Ferramentas do LINQ to SQL no Visual Studio
LINQ to SQL
Procedimentos armazenados
Como criar métodos DataContext mapeados para procedimentos armazenados e
funções (Designer Relacional de Objetos)
Como atribuir procedimentos armazenados para executar atualizações, inserções e
exclusões (Designer Relacional de Objetos)
Passo a passo: personalizando a inserção, a atualização e o comportamento de
exclusão de classes de entidade
Passo a passo: criando classes LINQ to SQL (Designer Relacional de Objetos)
Herança de classe de dados (Designer
Relacional de Objetos)
Artigo • 12/01/2024
Como outros objetos, as classes de LINQ to SQL podem usar a herança e ser derivadas
de outras classes. Em código, você pode especificar relações de herança entre objetos
declarando uma classe que herda de outra. Em uma base de dados, as relações de
herança são criadas de várias maneiras. O Designer Relacional de Objetos (Designer de
O/R) dá suporte ao conceito de herança de tabela única, pois geralmente é o
implementado nos sistemas relacionais.
A herança de tabela única, há uma única tabela de base de dados que contém colunas
para ambos base e classes derivadas. Com dados relacionais, uma coluna de
discriminador contém o valor que determina qual classe qualquer determinado registro
pertence. Por exemplo, pense em uma tabela Persons que contém todos os
empregados de uma empresa. Algumas pessoas são funcionários e algumas pessoas
são gerentes. A tabela Persons contém uma coluna denominada Type que possui o
valor de 1 para gerentes e o valor de 2 para funcionários. A coluna Type é a coluna de
discriminador. Nesse cenário, você pode criar uma subclasse de funcionários e
preencher a classe apenas com os registros que possuem valor Type de 2.
Propriedades de herança
A seguinte tabela lista as propriedades de herança e suas descrições:
ノ Expandir a tabela
Propriedade Descrição
Valor Discriminador O valor (na coluna designada como a propriedade discriminatória) que
Propriedade Descrição
Criar um modelo de objeto que usar herança e corresponde a dados relacionais pode
ser um pouco confuso. Este tópico fornece informações sobre os conceitos básicos e as
propriedades individuais que são necessários configurando a herança. Os tópicos a
seguir fornecem uma explicação mais clara de como configurar a herança com o
Designer Relacional de Objetos.
ノ Expandir a tabela
Tópico Descrição
Como configurar a herança usando o Descreve como configurar classes de entidade que
Designer Relacional de Objetos usam herança de tabela única usando o Designer
Relacional de Objetos.
Passo a passo: criando classes LINQ to Fornece instruções passo a passo sobre como
SQL usando a herança de tabela única configurar classes de entidade que usam herança de
(Designer Relacional de Objetos) tabela única usando o Designer Relacional de
Objetos.
Conteúdo relacionado
Ferramentas do LINQ to SQL no Visual Studio
Passo a passo: criando classes LINQ to SQL (Designer Relacional de Objetos)
Passo a passo: criando classes LINQ to SQL usando a herança de tabela única
(Designer Relacional de Objetos)
Guia de Introdução
A classe selecionada não pode ser
excluída porque é usada como um tipo
de retorno para um ou mais métodos
DataContext
Artigo • 12/01/2024
Para reverter os tipos de retorno de métodos de DataContext para seus tipos gerados
automaticamente de original, primeiro excluir o método de DataContext do painel
Métodos e arraste então o objeto de Gerenciador de Servidores/Gerenciador de Banco
de Dados no Designer Relacional de Objetos novamente.
Confira também
Ferramentas do LINQ to SQL no Visual Studio
A cadeia de conexão contém credenciais
com uma senha de texto não
criptografado e não estiver usando
segurança integrada
Artigo • 12/01/2024
2 Aviso
Opções de salvamento
Para salvar a cadeia de caracteres de conexão sem as informações confidenciais,
selecione Sim.
Confira também
Ferramentas do LINQ to SQL no Visual Studio
A propriedade <nome da propriedade>
não pode ser excluída porque está
participando da associação <nome da
associação>
Artigo • 12/01/2024
2. Clique duas vezes na linha para abrir a caixa de diálogo Editor de Associação.
Confira também
Ferramentas do LINQ to SQL no Visual Studio
A propriedade <nome da propriedade>
não pode ser excluída
Artigo • 12/01/2024
A propriedade <nome da propriedade> não pode ser excluída porque está definida
como a Propriedade discriminatória para herança entre <nome da classe> e <nome da
classe>
Confira também
Ferramentas do LINQ to SQL no Visual Studio
A propriedade de conexão no arquivo
de configurações do aplicativo está
ausente ou incorreta
Artigo • 12/01/2024
Confira também
Ferramentas do LINQ to SQL no Visual Studio
Não é possível criar uma associação
<nome da associação> – os tipos de
propriedade não correspondem
Artigo • 12/01/2024
4. Clique em OK.
Confira também
Ferramentas do LINQ to SQL no Visual Studio
Como: criar uma associação entre classes LINQ to SQL (O/R Designer)
Aviso: foram feitas alterações na caixa
de diálogo Configurar Comportamento
que não foram aplicadas
Artigo • 12/01/2024
Alterar as opções
Para aplicar a alteração e continuar, clique em Sim. A alteração é aplicada à Classe
e ao Comportamento selecionados.
Confira também
Ferramentas do LINQ to SQL no Visual Studio
Você tiver selecionado um objeto de
base de dados de um provedor de base
de dados sem suporte
Artigo • 12/01/2024
7 Observação
Opções
Clique em OK para continuar a criar as classes de entidade que mapeiam para a
conexão que usa o provedor de banco de dados sem suporte. Você pode
apresentar comportamento inesperado quando você usa provedores de base de
dados sem suporte.
Clique em Cancelar para interromper a ação. Crie ou use uma conexão de dados
diferente que usa o provedor do. NET Framework para SQL Server.
Confira também
Ferramentas do LINQ to SQL no Visual Studio
Este método relacionado é o método de
suporte para a seguir inserção,
atualização, ou métodos padrão de
exclusão
Artigo • 12/01/2024
continuar?
Objetos. Excluir o método selecionado fará com que a classe de entidade que estiver
usando esse método reverta para o comportamento padrão de tempo de execução para
executar a inserção, atualização ou exclusão durante uma atualização.
Confira também
Ferramentas do LINQ to SQL no Visual Studio
Um ou mais itens selecionados contêm
um tipo de dados que não é suportado
pelo designer
Artigo • 12/01/2024
Confira também
Ferramentas do LINQ to SQL no Visual Studio
Altere o tipo de retorno de um método
DataContext não pode ser desfeito
Artigo • 12/01/2024
A alteração do tipo retornado por um método DataContext não pode ser desfeita. Para
reverter de volta para o tipo gerado automaticamente, você deve arraste o item do
Gerenciador de Servidores ou Gerenciador de Banco de Dados no Designer Relacional
de Objetos novamente. Tem certeza de que deseja alterar o tipo retornado?
Confira também
Ferramentas do LINQ to SQL no Visual Studio
O designer não pode ser alterado para
depuração
Artigo • 12/01/2024
Esta mensagem aparece quando é feita uma tentativa de modificar itens no Designer
Relacional de Objetos enquanto o aplicativo está sendo executado no modo de
depuração. Quando o aplicativo está sendo executado no modo de depuração, o
Designer Relacional de Objetos é somente leitura.
Para corrigir esse erro, selecione Parar Depuração no menu Depurar. O aplicativo para a
depuração e você pode modificar itens no Designer Relacional de Objetos.
Confira também
Ferramentas do LINQ to SQL no Visual Studio
A conexão selecionada usa um provedor
de base de dados sem suporte
Artigo • 12/01/2024
Esta mensagem aparece quando você arrasta itens que não usam o provedor de dados
.NET Framework para SQL Server do Gerenciador de Servidores ou do Gerenciador de
Banco de Dados para as ferramentas do LINQ to SQL no Visual Studio.
Para corrigir esse erro, adicione apenas itens de conexões de dados que usem o
provedor de dados do .NET Framework para SQL Server ao Designer Relacional de
Objetos.
Confira também
System.Data.SqlClient
Ferramentas do LINQ to SQL no Visual Studio
Os objetos que você está adicionando
ao designer usam uma conexão de
dados diferente da que o designer usa
Artigo • 12/01/2024
Os objetos que você está adicionando ao designer usam uma conexão de dados
diferente da que o designer está usando no momento. Deseja substituir a conexão
usada pelo designer?
Opções de conexão
Para substituir a conexão existente pela conexão usada pelo objeto selecionado,
clique em Sim.
7 Observação
A propriedade na mensagem aparece mais de uma vez na classe pai ou filho das
Propriedades de Associação.
Clique em OK.
Confira também
Ferramentas do LINQ to SQL no Visual Studio
Como: criar uma associação entre classes LINQ to SQL (O/R Designer)
Não foi possível recuperar informações
de esquema do objeto de banco de
dados <nome do objeto>
Artigo • 12/01/2024
Confira também
Ferramentas do LINQ to SQL no Visual Studio
Um ou mais objetos de base de dados
selecionado retornam um esquema que
não corresponde ao esquema de classe
de destino
Artigo • 12/01/2024
Confira também
Ferramentas do LINQ to SQL no Visual Studio