Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como se conectar ao banco de dados do SQL Server de um aplicativo UWP do Windows 10


Com o Windows 10 Fall Creators Update (build 16299), os aplicativos UWP agora podem acessar o SQL Server diretamente por meio das classes NET padrão (System.Data.SqlClient) - graças ao suporte recém-adicionado para .NET Standard 2.0 em UWP.

Aqui está um aplicativo de demonstração Northwind UWP:https://github.com/StefanWickDev/IgniteDemos

Apresentamos esta demonstração no Microsoft Ignite em setembro de 2017, aqui está a gravação da nossa sessão (pule para as 23:00 para a demonstração do SQL):https://myignite.microsoft.com/sessions/53541

Aqui está o código para recuperar os produtos do banco de dados Northwind (consulte DataHelper.cs na demonstração). Observe que é exatamente o mesmo código que você escreveria para um aplicativo Winforms ou WPF - graças ao .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;
}

Se você precisar dar suporte a versões anteriores ao Fall Creators Update, também há uma maneira de chamar APIs SqlClient do pacote do aplicativo UWP, por meio do Desktop Bridge. Eu tenho um exemplo para isso publicado aqui:https://github.com/Microsoft/DesktopBridgeToUWP-Samples/tree/master/Samples/SQLServer