gpt4 book ai didi

c# - 如何从 Windows 10 UWP 应用程序连接到 SQL 服务器数据库

转载 作者:可可西里 更新时间:2023-11-01 08:06:32 25 4
gpt4 key购买 nike

我正在尝试从通用 Windows 应用程序连接到本地 MS SQL 数据库。我正在使用 UWP 制作 LOB 应用程序,以支持桌面、平板电脑和移动设备的使用。尝试连接到本地(内联网)SQL 服务器数据库时,我习惯使用 SqlConnection 的实例连接到本地服务器,但由于 SqlConnection 未包含在 UWP 中使用的 .NET 子集中,因此在使用 UWP 时如何完成?

我查看了 official Microsoft samples以及 how-to guides ,并且没有找到关于不是 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 上展示了此演示,以下是我们的 session 记录(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

关于c# - 如何从 Windows 10 UWP 应用程序连接到 SQL 服务器数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32885735/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com