С актуализацията на Windows 10 Fall Creators Update (build 16299) UWP приложенията вече имат достъп до SQL Server директно чрез стандартните NET класове (System.Data.SqlClient) - благодарение на новодобавената поддръжка за .NET Standard 2.0 в UWP.
Ето демо приложение на Northwind UWP:https://github.com/StefanWickDev/IgniteDemos
Представихме тази демонстрация в Microsoft Ignite през септември 2017 г., ето записа на нашата сесия (прескочете до 23:00 за демонстрацията на SQL):https://myignite.microsoft.com/sessions/53541
Ето кода за извличане на продуктите от базата данни на Northwind (вижте DataHelper.cs в демонстрацията). Имайте предвид, че това е точно същия код, който бихте написали за приложение на Winforms или WPF - благодарение на .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;
}
Ако трябва да поддържате по-ранни версии от актуализацията на Fall Creators, има и начин да извикате API на SqlClient от пакета на вашия UWP приложение чрез Desktop Bridge. Имам извадка за това, публикувана тук:https://github.com/Microsoft/DesktopBridgeToUWP-Samples/tree/master/Samples/SQLServer