Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uygulamanız doğrudan bir SQL Server veritabanına bağlanabilir ve ardından System.Data.SqlClient ad alanında sınıfları kullanarak verileri depolayabilir ve alabilir.
Başlangıç Yapmak
Bu kılavuzda, Windows App SDK kullanan uygulamalarda bunu yapmanızın bir yolunu göstereceğiz. Northwind örnek veritabanını SQL Server örneğine yükler ve sonra bu kod parçacıklarını kullanırsanız, Northwind örnek veritabanındaki ürünleri gösteren temel bir kullanıcı arabirimi elde edersiniz.
Tip
Northwind ve pubs örnek veritabanlarını oluşturmak için SQL Server Samples GitHub deposundan betikleri de alabilirsiniz.
Bu kılavuzda gösterilen kod parçacıkları bu UWP örnek uygulamasını temel alır.
İlk olarak çözümünüzü ayarlayın
Uygulamanızı doğrudan bir SQL Server veritabanına bağlamak için uygulamanız, Windows App SDK tarafından desteklenen Windows en düşük sürümünü hedefleyebilir. Bu bilgileri projenizin özellikler sayfasında bulabilirsiniz.
- bildirim tasarımcısında Windows App SDK projenizin Package.appxmanifest dosyasını açın.
- SQL Server kimlik doğrulaması için Windows Kimlik Doğrulaması kullanıyorsanız Capabilities sekmesinde Enterprise Authentication onay kutusunu seçin.
Önemli
Seçmeniz gerekenler arasında, Windows Kimlik Doğrulaması kullanıp kullanmadığınıza bakılmaksızın, Internet (İstemci ve Sunucu), Internet (İstemci) ve Özel Ağlar (İstemci ve Sunucu) bulunmaktadır.
SQL Server veritabanında veri ekleme ve alma
Bu bölümde şunları yapacağız:
1️⃣ Bir bağlantı dizesi ekleyin.
2️⃣ Ürün verilerini tutmak için bir sınıf oluşturun.
3️⃣ ürünleri SQL Server veritabanından alın.
4️⃣ Temel bir kullanıcı arabirimi ekleyin.
5️⃣ Kullanıcı Arabirimini Ürünlerle Doldurun.
Uyarı
Bu bölümde veri erişim kodunuzu düzenlemenin bir yolu gösterilmektedir. Yalnızca SQL Server veritabanından veri depolamak ve almak için System.Data.SqlClient'ı nasıl kullanabileceğinize bir örnek sağlamak içindir. Kodunuzu, uygulamanızın tasarımına en uygun şekilde düzenleyebilirsiniz.
Bağlantı dizesi ekleyin
App.xaml.cs dosyasında, App sınıfına çözümünüzün diğer sınıflarına connection string erişim sağlayan bir özellik ekleyin.
connection string, SQL Server Express örneğindeki Northwind veritabanını işaret eder. Bu kod parçacığındaki connection string, SQL Server Express'i yüklerken varsayılan örnek adını SQLEXPRESS tuttuğunuz varsayılır. SQL Server örneğiniz, veritabanınız ve kimlik doğrulama yönteminizle eşleşecek şekilde connection string değişiklik yapabilirsiniz.
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; }
...
}
Önemli
Üretim uygulamalarında, bağlantı bilgileri uygulama yapılandırmasında güvenli bir şekilde depolanmalıdır (bkz. Visual Studio Bağlı Hizmetlerini Kullanarak Azure Uygulama Yapılandırmasını Ekleme). Bağlantı dizeleri ve diğer gizli diziler hiçbir zaman sabit kodlanmamalıdır.
Ürün verilerini barındıracak bir sınıf oluşturma
XAML kullanıcı arabirimimizdeki öznitelikleri bu sınıftaki özelliklere bağlayabilmemiz için INotifyPropertyChanged olayını uygulayan bir sınıf oluşturacağız.
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));
}
}
SQL Server veritabanından ürün alma
Windows App SDK projesinin MainWindow.xaml.cs dosyasında Northwind örnek veritabanından ürünleri alan bir yöntem oluşturun ve bunları ObservableCollection koleksiyonu olarak Product örnekleri olarak döndürür.
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;
}
Temel kullanıcı arabirimi ekleme
Windows App SDK projesinin MainWindow.xaml dosyasına aşağıdaki XAML'yi ekleyin.
Bu XAML, önceki kod parçacığında döndürdüğünüz her ürünü göstermek için bir ListView oluşturur ve içindeki her satırın ListView özniteliklerini sınıfında tanımladığımız Product özelliklere bağlar.
<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>
ListView'da ürünleri gösterme
MainWindow.xaml.cs dosyasını açın ve MainWindow sınıfının oluşturucusuna, ListView'un ItemSource özelliğini ObservableCollection örneklerine ayarlayan kodu ekleyin.
public MainWindow()
{
this.InitializeComponent();
InventoryList.ItemsSource = GetProducts((App.Current as App).ConnectionString);
}
Projeyi başlatın ve Northwind örnek veritabanındaki ürünlerin kullanıcı arabiriminde göründüğüne bakın.
SQL Server veritabanınızdaki verilerle yapabileceklerinizi görmek için System.Data.SqlClient ad alanını keşfedin.
Tip
SQL sorgularınızla ilgili yardım için Microsoft Copilot istemeyi deneyin. Copilot SQL sorguları yazmanıza yardımcı olabilir ve kodunuzu geliştirmenin yollarını önerebilir.
Veritabanınıza bağlanırken sorun mu yaşıyorsunuz?
Çoğu durumda, SQL Server yapılandırmasının bazı yönlerinin değiştirilmesi gerekir. Veritabanınıza Windows Forms veya WPF uygulaması gibi başka bir masaüstü uygulamasından bağlanabiliyorsanız, SQL Server için TCP/IP'yi etkinleştirdiğinizden emin olun. Bunu Bilgisayar Yönetimi konsolunda yapabilirsiniz. (Daha fazla bilgi için bkz. Windows Araçları/Yönetim Araçları.)
Ardından, SQL Server Browser hizmetinizin çalıştığından emin olun.
Sonraki adım
Windows developer