Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Seu aplicativo pode se conectar diretamente a um banco de dados SQL Server e, em seguida, armazenar e recuperar dados usando classes no namespace System.Data.SqlClient.
Introdução
Neste guia, mostraremos uma maneira de fazer isso em aplicativos que usam o Windows App SDK. Se você instalar o banco de dados de exemplo Northwind em sua instância de SQL Server e, em seguida, usar esses snippets, você acabará com uma interface do usuário básica que mostra produtos do banco de dados de exemplo Northwind.
Dica
Você também pode obter scripts para criar os bancos de dados de exemplo Northwind e pubs do SQL Server Samples GitHub repositório.
Os snippets que aparecem neste guia baseiam-se no aplicativo UWP de exemplo.
Primeiro, configure sua solução
Para conectar seu aplicativo diretamente a um banco de dados SQL Server, seu aplicativo pode direcionar qualquer versão mínima de Windows compatível com Windows App SDK. Essas informações estão na página de propriedades do projeto.
- Abra o arquivo Package.appxmanifest do projeto Windows App SDK no designer de manifesto.
- Na guia Capabilities, marque a caixa de seleção Enterprise Authentication se estiver usando a Autenticação Windows para autenticar seu SQL Server.
Importante
Você também precisará selecionar
Adicionar e recuperar dados em um banco de dados SQL Server
Nesta seção, faremos o seguinte:
1️⃣ Adicione uma cadeia de conexão.
2️⃣ Criar uma classe para armazenar dados do produto.
3️⃣ Recuperar produtos do banco de dados SQL Server.
4️⃣ Adicionar uma interface do usuário básica.
5️⃣ Preencher a interface do usuário com produtos.
Observação
Esta seção ilustra uma maneira de organizar seu código de acesso a dados. Ele destina-se apenas a fornecer um exemplo de como você pode usar System.Data.SqlClient para armazenar e recuperar dados de um banco de dados SQL Server. Você pode organizar seu código de qualquer maneira que faça mais sentido para o design do seu aplicativo.
Adicionar uma string de conexão
No arquivo App.xaml.cs, adicione uma propriedade à classe App, que fornece a outras classes em sua solução acesso à connection string.
Nossa string de conexão aponta para o banco de dados Northwind em uma instância do SQL Server Express. O connection string neste snippet pressupõe que você manteve o nome da instância padrão SQLEXPRESS ao instalar o SQL Server Express. Você pode fazer alterações no connection string para corresponder à sua instância SQL Server, banco de dados e método de autenticação.
sealed partial class App : Application
{
// Connection string for using Windows Authentication.
private string connectionString =
@"Data Source=.\SQLEXPRESS;Initial Catalog=NORTHWIND;Integrated Security=SSPI";
public string ConnectionString { get => connectionString; set => connectionString = value; }
...
}
Importante
Em aplicativos de produção, as informações de conexão devem ser armazenadas com segurança na configuração do aplicativo (consulte Adicionando Configuração de Aplicativo do Azure com os Serviços Conectados do Visual Studio). Cadeias de conexão e outros segredos nunca devem ser codificados.
Criar uma classe para armazenar dados do produto
Vamos criar uma classe que implementa o evento INotifyPropertyChanged para que possamos associar os atributos em nossa interface do usuário XAML às propriedades nessa classe.
public class Product : INotifyPropertyChanged
{
public int ProductID { get; set; }
public string ProductCode { get { return ProductID.ToString(); } }
public string ProductName { get; set; }
public string QuantityPerUnit { get; set; }
public decimal UnitPrice { get; set; }
public string UnitPriceString { get { return UnitPrice.ToString("######.00"); } }
public int UnitsInStock { get; set; }
public string UnitsInStockString { get { return UnitsInStock.ToString("#####0"); } }
public int CategoryId { get; set; }
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
Recuperar produtos do banco de dados SQL Server
No arquivo MainWindow.xaml.cs do projeto Windows App SDK, crie um método que obtém produtos do banco de dados de exemplo Northwind e os retorna como uma coleção ObservableCollection de instâncias Product.
public ObservableCollection<Product> GetProducts(string connectionString)
{
const string GetProductsQuery = "select ProductID, ProductName, QuantityPerUnit," +
" UnitPrice, UnitsInStock, Products.CategoryID " +
" from Products inner join Categories on Products.CategoryID = Categories.CategoryID " +
" where Discontinued = 0";
var products = new ObservableCollection<Product>();
try
{
using (var conn = new SqlConnection(connectionString))
{
conn.Open();
if (conn.State == System.Data.ConnectionState.Open)
{
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = GetProductsQuery;
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
var product = new Product();
product.ProductID = reader.GetInt32(0);
product.ProductName = reader.GetString(1);
product.QuantityPerUnit = reader.GetString(2);
product.UnitPrice = reader.GetDecimal(3);
product.UnitsInStock = reader.GetInt16(4);
product.CategoryId = reader.GetInt32(5);
products.Add(product);
}
}
}
}
}
return products;
}
catch (Exception eSql)
{
Debug.WriteLine($"Exception: {eSql.Message}");
}
return null;
}
Adicionar uma interface do usuário básica
Adicione o XAML a seguir ao arquivo MainWindow.xaml do projeto Windows App SDK.
Este XAML cria uma ListView para mostrar cada produto retornado no snippet anterior e associar os atributos de cada linha na ListView às propriedades que definimos na classe Product.
<Grid Background="{ThemeResource SystemControlAcrylicWindowBrush}">
<RelativePanel>
<ListView Name="InventoryList"
SelectionMode="Single"
ScrollViewer.VerticalScrollBarVisibility="Auto"
ScrollViewer.IsVerticalRailEnabled="True"
ScrollViewer.VerticalScrollMode="Enabled"
ScrollViewer.HorizontalScrollMode="Enabled"
ScrollViewer.HorizontalScrollBarVisibility="Auto"
ScrollViewer.IsHorizontalRailEnabled="True"
Margin="20">
<ListView.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" >
<TextBlock Text="ID" Margin="8,0" Width="50" Foreground="DarkRed" />
<TextBlock Text="Product description" Width="300" Foreground="DarkRed" />
<TextBlock Text="Packaging" Width="200" Foreground="DarkRed" />
<TextBlock Text="Price" Width="80" Foreground="DarkRed" />
<TextBlock Text="In stock" Width="80" Foreground="DarkRed" />
</StackPanel>
</DataTemplate>
</ListView.HeaderTemplate>
<ListView.ItemTemplate>
<DataTemplate x:DataType="local:Product">
<StackPanel Orientation="Horizontal" >
<TextBlock Name="ItemId"
Text="{x:Bind ProductCode}"
Width="50" />
<TextBlock Name="ItemName"
Text="{x:Bind ProductName}"
Width="300" />
<TextBlock Text="{x:Bind QuantityPerUnit}"
Width="200" />
<TextBlock Text="{x:Bind UnitPriceString}"
Width="80" />
<TextBlock Text="{x:Bind UnitsInStockString}"
Width="80" />
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</RelativePanel>
</Grid>
Mostrar produtos na ListView
Abra o arquivo MainWindow.xaml.cs e adicione o código ao construtor da classe MainWindow que define a propriedade ItemSource da ListView como a ObservableCollection das instâncias de Product.
public MainWindow()
{
this.InitializeComponent();
InventoryList.ItemsSource = GetProducts((App.Current as App).ConnectionString);
}
Inicie o projeto e veja os produtos do banco de dados de exemplo Northwind aparecerem na interface do usuário.
Explore o namespace System.Data.SqlClient para ver quais outras coisas você pode fazer com os dados em seu banco de dados SQL Server.
Dica
Tente pedir ajuda Microsoft Copilot com suas consultas SQL. Copilot pode ajudá-lo a escrever consultas SQL e sugerir maneiras de melhorar seu código.
Problemas para se conectar ao seu banco de dados?
Na maioria dos casos, algum aspecto da configuração de SQL Server precisa ser alterado. Se você conseguir se conectar ao banco de dados de outro tipo de aplicativo da área de trabalho, como um aplicativo Windows Forms ou WPF, verifique se você habilitou o TCP/IP para SQL Server. Faça isso no console de Gerenciamento do computador. (Consulte Windows Ferramentas/Ferramentas Administrativas para obter mais informações.)
Em seguida, verifique se o serviço navegador SQL Server está em execução.
Próxima etapa
Windows developer