Avec la mise à jour Windows 10 Fall Creators (build 16299), les applications UWP peuvent désormais accéder directement à SQL Server via les classes NET standard (System.Data.SqlClient) - grâce à la prise en charge nouvellement ajoutée de .NET Standard 2.0 dans UWP.
Voici une application de démonstration Northwind UWP :https://github.com/StefanWickDev/IgniteDemos
Nous avons présenté cette démo à Microsoft Ignite en septembre 2017, voici l'enregistrement de notre session (passez à 23h00 pour la démo SQL) :https://myignite.microsoft.com/sessions/53541
Voici le code pour récupérer les produits de la base de données Northwind (voir DataHelper.cs dans la démo). Notez qu'il s'agit exactement du même code que vous écririez pour une application Winforms ou WPF - grâce au .NET Standard 2.0 :
public static ProductList 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 ProductList();
try
{
using (SqlConnection 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;
}
Si vous devez prendre en charge des versions antérieures à la mise à jour Fall Creators, vous pouvez également appeler les API SqlClient à partir de votre package d'application UWP, via Desktop Bridge. J'ai un exemple pour cela publié ici :https://github.com/Microsoft/DesktopBridgeToUWP-Samples/tree/master/Samples/SQLServer