sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo conectarse a la base de datos del servidor SQL desde una aplicación de Windows 10 UWP

Con Windows 10 Fall Creators Update (compilación 16299), las aplicaciones UWP ahora pueden acceder a SQL Server directamente a través de las clases NET estándar (System.Data.SqlClient), gracias a la compatibilidad recientemente agregada para .NET Standard 2.0 en UWP.

Aquí hay una aplicación de demostración de Northwind UWP:https://github.com/StefanWickDev/IgniteDemos

Presentamos esta demostración en Microsoft Ignite en septiembre de 2017, aquí está la grabación de nuestra sesión (pase a las 23:00 para ver la demostración de SQL):https://myignite.microsoft.com/sessions/53541

Aquí está el código para recuperar los productos de la base de datos Northwind (consulte DataHelper.cs en la demostración). Tenga en cuenta que es exactamente el mismo código que escribiría para una aplicación Winforms o WPF, gracias a .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 necesita compatibilidad con versiones anteriores a Fall Creators Update, también hay una forma de llamar a las API de SqlClient desde su paquete de aplicación para UWP, a través de Desktop Bridge. Tengo una muestra de esto publicada aquí:https://github.com/Microsoft/DesktopBridgeToUWP-Samples/tree/master/Samples/SQLServer