如何从Windows 10 UWP应用连接到SQL Server数据库

我正在尝试从通用Windows应用程序连接到本地MS

SQL数据库。我正在使用UWP制作LOB应用程序,以支持台式机,平板电脑和移动设备的使用。尝试连接到本地(Intranet)SQL

Server数据库时,我习惯于使用SqlConnection实例连接到本地服务器,但是由于SqlConnection不包含在UWP中使用的.NET子集中,因此该怎么做?在使用UWP时?

我查看了Microsoft的官方示例以及使用指南,但发现与非Azure数据库的数据库连接无关。DbConnection似乎是个不错的选择,但由于它是抽象的,因此无法使用,它的子级(例如Data.SqlClient.SqlConnection)似乎未包含在UWP的.NET子集中。

我在这里想念什么超级明显吗?顺便说一句,是否有人知道UWP的良好名称空间参考?

编辑非重复项:建议作为重复项的链接问题适用于Windows 8 /

8.1应用程序,尽管有一些相似之处,但该问题的可接受答案中的代码不适用于UWP。但是,原理是相同的,但是对于使用UWP构建的Windows

10应用程序,应该有更好的技术参考。

回答:

通过Windows 10 Fall Creators

Update(内部版本16299),UWP应用现在可以直接通过标准NET类(System.Data.SqlClient)访问SQL

Server,这要归功于UWP中对.NET Standard 2.0的新增支持。

这是罗斯文(Northwind)UWP演示应用程序:https

:

//github.com/StefanWickDev/IgniteDemos

我们已在2017年9月的Microsoft

Ignite上演示了此演示,这是我们的会议记录(对于SQL演示,跳至23:00):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 Update更低的版本,则还可以通过Desktop Bridge从UWP应用程序包中调用SqlClient

API。我为此发布了一个示例:https:

//github.com/Microsoft/DesktopBridgeToUWP-

Samples/tree/master/Samples/SQLServer

以上是 如何从Windows 10 UWP应用连接到SQL Server数据库 的全部内容, 来源链接: utcz.com/qa/423024.html

回到顶部