Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az alkalmazás közvetlenül csatlakozhat egy SQL Server-adatbázishoz, majd a System.Data.SqlClient névtér osztályai segítségével tárolhatja és lekérheti az adatokat.
Kezdő lépések
Ebben az útmutatóban bemutatjuk, hogyan teheti ezt meg a Windows App SDK használó alkalmazásokban. Ha telepíti a Northwind mintaadatbázist a SQL Server-példányra, majd ezeket a kódrészleteket használja, egy alapszintű felhasználói felület jelenik meg, amely a Northwind mintaadatbázis termékeit jeleníti meg.
Jótanács
Szkripteket is lekérhet a Northwind és pubs mintaadatbázisok létrehozásához a SQL Server Minták GitHub adattárból.
Az útmutatóban megjelenő kódrészletek ezen mintaalkalmazáson alapulnak.
Először állítsa be a megoldást
Ha közvetlenül egy SQL Server-adatbázishoz szeretné csatlakoztatni az alkalmazást, az alkalmazás a Windows App SDK által támogatott minimális Windows-verziót célozhatja meg. Ezeket az információkat a projekt tulajdonságok oldalán találja.
- Nyissa meg a Package.appxmanifest fájlt a Windows App SDK projektjéről a jegyzéktervezőben.
- A Capabilities lapon jelölje be a Enterprise Authentication jelölőnégyzetet, ha Windows hitelesítést használ a SQL Server hitelesítéséhez.
Fontos
A Internet (Ügyfél és Kiszolgáló), Internet (Ügyfél) és Private Networks (Ügyfél és Kiszolgáló) lehetőséget is ki kell választania, függetlenül attól, hogy a Windows hitelesítést használja-e.
Adatok hozzáadása és lekérése SQL Server adatbázisban
Ebben a szakaszban a következő műveleteket hajtjuk végre:
1️⃣ Kapcsolati karakterlánc hozzáadása.
2️⃣ Hozzon létre egy osztályt a termékadatok tárolásához.
3️⃣ Termékek lekérése a SQL Server adatbázisból.
4️⃣ Egyszerű felhasználói felület hozzáadása.
5️⃣ Töltse fel a felhasználói felületet termékekkel.
Megjegyzés:
Ez a szakasz az adatelérési kód rendszerezésének egyik módját mutatja be. Csak példaként szolgál arra, hogyan használható System.Data.SqlClient adatok tárolása és lekérése egy SQL Server adatbázisból. A kódot bármilyen módon rendszerezheti, amely a legérthetőbb az alkalmazás kialakításának szempontjából.
Adjon hozzá egy kapcsolati sztringet
A App.xaml.cs fájlban adjon hozzá egy tulajdonságot a App osztályhoz, amely hozzáférést biztosít a megoldás más osztályai számára a connection string.
A csatlakozási karakterlánc egy SQL Server Express-példányban lévő Northwind-adatbázisra mutat. A kódrészlet kapcsolati karakterlánca feltételezi, hogy az SQL Server Express telepítésekor az alapértelmezett példánynevet SQLEXPRESS tartotta meg. A kapcsolatláncot úgy módosíthatja, hogy az megfeleljen a SQL Server példányának, adatbázisának és a hitelesítési módszernek.
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; }
...
}
Fontos
Éles alkalmazásokban a kapcsolati adatokat biztonságosan kell tárolni az alkalmazáskonfigurációban (lásd: Az Azure App Configuration hozzáadása Visual Studio Csatlakoztatott szolgáltatások használatával). A kapcsolati sztringeket és más titkos kódokat soha nem szabad szigorúan kódolva tárolni.
Osztály létrehozása a termékadatok tárolásához
Létrehozunk egy osztályt, amely megvalósítja az INotifyPropertyChanged eseményt , így az XAML felhasználói felületén lévő attribútumokat az osztály tulajdonságaihoz köthetjük.
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));
}
}
Termékek lekérése a SQL Server adatbázisból
A Windows App SDK projekt MainWindow.xaml.cs fájljában hozzon létre egy metódust, amely lekéri a Termékeket a Northwind mintaadatbázisból, majd ObservableCollectionProduct példányok gyűjteményeként adja vissza őket.
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;
}
Egyszerű felhasználói felület hozzáadása
Adja hozzá a következő XAML-t a MainWindow.xaml fájlhoz a Windows App SDK projekthez.
Ez az XAML létrehoz egy ListView-t , amely megjeleníti az előző kódrészletben visszaadott összes terméket, és az egyes sorok ListView attribútumait az osztályban Product definiált tulajdonságokhoz köti.
<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>
Termékek megjelenítése a ListView-ban
Nyissa meg a MainWindow.xaml.cs fájlt, és adjon hozzá kódot annak az osztálynak a MainWindow konstruktorához, amely a ListViewItemSource tulajdonságát a példányok ObservableCollection elemére Product állítja.
public MainWindow()
{
this.InitializeComponent();
InventoryList.ItemsSource = GetProducts((App.Current as App).ConnectionString);
}
Indítsa el a projektet, és tekintse meg a Northwind mintaadatbázis termékeit a felhasználói felületen.
Fedezze fel a System.Data.SqlClient névteret, és nézze meg, milyen egyéb műveleteket végezhet az SQL Server adatbázis adataival.
Jótanács
Kérjen segítséget Microsoft Copilot az SQL-lekérdezésekkel kapcsolatban. Copilot segíthet az SQL-lekérdezések írásában, és javaslatot tehet a kód javítására.
Nem tud csatlakozni az adatbázishoz?
A legtöbb esetben módosítani kell a SQL Server konfiguráció néhány aspektusát. Ha képes egy másik asztali alkalmazásból, például Windows Forms vagy WPF alkalmazásból csatlakozni az adatbázishoz, győződjön meg róla, hogy engedélyezte a TCP/IP beállítást az SQL Serverhez. Ezt a Számítógép-kezelés konzolon teheti meg. (További információ: Windows Eszközök/Felügyeleti eszközök.)
Ezután győződjön meg arról, hogy a SQL Server Böngésző szolgáltatás fut.
Következő lépés
Windows developer