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

2023-12-02

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

我已经看过了微软官方样本以及操作指南,并且没有发现任何有关非 Azure 数据库的数据库连接的信息。数据库连接看起来这可能是一个好方法,但不能使用,因为它是抽象的,而且它是子项(例如数据.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 上展示了此演示,以下是我们的会议记录(跳至 23:00 查看 SQL 演示):https://myignite.microsoft.com/sessions/53541

以下是从 Northwind 数据库检索产品的代码(请参阅演示中的 DataHelper.cs)。请注意,由于 .NET Standard 2.0,它与您为 Winforms 或 WPF 应用程序编写的代码完全相同:

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;
}

如果您需要支持秋季创意者更新之前的版本,您还可以通过桌面桥从 UWP 应用程序包调用 SqlClient API。我在这里发布了一个示例:https://github.com/Microsoft/DesktopBridgeToUWP-Samples/tree/master/Samples/SQLServer

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 Windows 10 UWP 应用连接到 SQL Server 数据库 的相关文章

  • 是否有一个sql条件可以查找列中的非整数?

    基本上我想要一个像这样运行的 select 语句 SELECT FROM table WHERE column IS NOT INT 是否存在这样的条件或者如何检查 nvarchar 10 列中的非整数 In SQL Server你可以做
  • 以编程方式更改 Excel 中的字体(Trebuchet MS、Calibari)C#

    我目前正在使用一个 C 应用程序 该应用程序有一个将生成 Excel 文件的类 一切都很顺利 Excel 工作表上填充的数据具有 Times New Roman 字体 我想将其更改为其他字体 Calibari 我怎样才能以编程方式做到这一点
  • 在宏中使用 # [重复]

    这个问题在这里已经有答案了 请解释一下代码 include
  • 外部剃刀视图看不到外部模型

    我对外部剃刀视图有疑问 在我的项目中 我有主 mvc Web 程序集和动态加载的外部类库程序集 来自 DB 及其自己的控制器 视图和模型 这些程序集在运行时不会直接引用和加载 我能够通过为控制器创建自定义控制器工厂 为视图创建自定义虚拟路径
  • C# Visual Studio 动态代码片段

    我正在开发一个 WinForms 项目 每天都会执行一些重复性的任务 所以我认为创建代码片段 https msdn microsoft com en us library ms165394 v vs 110 aspx会帮助我 但它仅适用于固
  • 多态性中基类缺少虚拟析构函数 = 资源泄漏?

    我们知道 如果要多态地使用基类 则需要将基类的析构函数指定为 virtual 否则程序中可能会出现资源泄漏 因为只会调用基类析构函数 而不会调用派生对象析构函数 我们还知道构造函数 析构函数纯粹是初始化 未初始化构造 而operator n
  • 错误 C2065:'cout':未声明的标识符

    我正在处理我的编程作业的 驱动程序 部分 但我不断收到这个荒谬的错误 错误 C2065 cout 未声明的标识符 我什至尝试过使用std cout但我收到另一个错误 IntelliSense 命名空间 std 没有成员 cout 当我宣布u
  • 命令中带空格的 Windows C 系统调用

    我无法使用名称和参数中的空格进行系统调用 例如 system c program files something example exe c my files example txt 我尝试过各种我知道的方法来逃避 但没有任何效果 我努力了
  • 第三方引用的 dll 未被复制来构建

    我有一个第三方 net dll 被我的 dll 类库项目 A 引用和使用 我的控制台应用程序项目 B 引用项目 A 我的问题是第三方 dll 没有被复制到控制台应用程序项目 B 的构建中 这里有什么问题呢 我的 dll 类库中引用的第三方
  • argc 和 argv 在 Windows 中没有用吗?

    在 Linux 中 argc 和 argv 计算终端中的参数 但在 Windows 中 我找不到放置第二个参数的地方 事实上 每次我运行该程序时 它都会创建那个丑陋的黑色窗口 我什至没有机会给出任何争论 那么这两个变量在Windows平台下
  • 内存不足异常

    我正在使用 C 和 asp net 开发一个网络应用程序 我一直收到内存不足的异常 该应用程序的作用是从数据源读取一堆记录 产品 可能是数百 数千 通过向导中的设置处理这些记录 然后使用处理的产品信息更新不同的数据源 虽然有多个 DB 类
  • 剥离 OLE 标头信息 (MS Access / SQL Server)

    我有一个 C 应用程序需要支持二进制数据库内容 图像等 当使用 MS Access 或 MS SQL Server 时 此数据被包装在 OLE 对象内 如何去除此 OLE 标头信息 请注意 我不能只查找特定标签的开头 因为内容可以是 png
  • 除法时的小数舍入误差 (C#)

    我基本上有四个数字 比如 100 200 300 400 我需要计算概率为 100 100 200 300 400 200 100 200 300 400 等等在 当我使用小数数据类型来存储这些概率时 由于舍入问题 它们不会达到 1 在不使
  • 是否有理由为什么用 XmlInclude 修饰的基类在序列化时仍然会抛出类型未知的异常?

    我将简化代码以节省空间 但所提供的内容确实说明了核心问题 我有一个类 它的属性是基类型 有 3 个派生类可以分配给该属性 如果我将任何派生类分配给容器并尝试序列化容器 XmlSerializer 会抛出可怕的错误 类型 x 不是预期的 使用
  • 简单的喷射器将具体类型与生活方式结合起来

    我正在寻找一种可以使用指定的生活方式注册具体类型的方法 基本上如下所示 public void SomeFunction Type concrete Lifestyle lifestyle gt container Register con
  • 将 R 值传递给采用 L 值的函数时出现过载歧义

    我有 2 个重载函数 一个采用 L 值 另一个采用 R 值 目的是让该函数可以像这样调用 Obj obj foo obj OR foo Obj 所以 我写了2个重载函数 template
  • 是否可以在 Eclipse 中为除 Java 之外的 Eclipse 编写插件?

    谁能帮我用c 写一个eclipse插件 weekens 和 celavek 感谢您提供的信息 我正在研究 JNI 并将尝试实现它 celavek 我们必须做什么样的主控 控制 在C 和java接口中处理是否风险更大 我的要求是在 Java
  • Task.Delay 到底是如何工作的?

    他们说 Task Delay 是一个异步 Thread Sleep 为了测试这一点 我写了下面的代码 我希望立即打印 One 然后 3 秒后将打印结果变量 15 2 秒后 将打印 Two 但似乎并非如此 一 不会立即打印 3 秒后打印 On
  • 预览MouseMove 与 MouseMove

    我有相当多的 XAML 经验 但最近我注意到我的大多数同事都使用预览鼠标移动代替鼠标移动事件 我一直用鼠标移动它对我很有帮助 但我忍不住问我什么时候应该使用预览鼠标移动什么时候鼠标移动 有什么区别 各自有什么优点和缺点等等 PreviewM
  • 如何从与 C# lambda 集成(而非代理集成)的 Amazon API 网关获取正确的 http 状态代码?

    我正在使用 C lambda 与 API 网关集成 我希望 API 网关返回正确的错误代码 例如 400 404 500 等 API网关模块tf文件 provider aws version lt 2 70 0 region var aws

随机推荐

  • Android :: Facebook 点赞按钮

    我正在学习如何使用 Facebook SDK 并且我喜欢在我正在测试的应用程序上添加一个 赞 按钮 不幸的是我做错了一些事情 所以您能否展示一个适用的示例或代码点赞按钮 这是正在处理的课程 Copyright 2010 present Fa
  • TinyMCE 返回不带 HTML 的内容

    我正在使用内联编辑器ipweditor内部使用tinyMCE编辑器的工具 在他们的演示页面上 它使用旧版本的tinyMCE 该版本在我的IE 中不起作用 所以我用最新版本更新了tinyMCE 在旧版本的 TinyMCE 中 它返回带有所有
  • 如何更新 Google Colab 的 Python 版本?

    Google Colab 上运行的当前默认 Python 版本是 3 7 但我的笔记本需要 3 9 才能工作 如何将 Google Colab 的 Python 版本更新到 3 9 或更高版本 在 Google Colab 中 您拥有基于
  • 从上传的文件中获取文件扩展名

    这里我的要求是上传文件并将其存储在磁盘中 我将其存储在磁盘中没有问题 但获取文件的扩展名 问题是当我单击上传并处理文件以存储在磁盘中时 它会保存为具有以下名称的临时文件 tmp multipartBody623808107601419981
  • 需要验证数据合约和数据成员

    我正在使用 Web api 构建一个 API 当接收发布的值并将它们绑定到我的模型时 我收到一个似乎不合适的错误 我有一个简单的模型 如下所示 public class Client ScaffoldColumn false JsonIgn
  • ZF2:如何使用 InArray 验证器来验证多选表单元素?

    我有一个 ZF2 表单 出于特定原因 我必须禁用本机验证器 然后 当以编程方式向表单添加元素时 我还添加了验证器 其中元素之一是多选数组 form gt add array type gt Zend Form Element Select
  • 正则表达式 BBCode 到 HTML

    我将 BBcode 转换器编写为 html 转换器应跳过未封闭的标签 我考虑了两种选择 1 使用一个正则表达式调用一次匹配所有标签 例如 Regex re2 new Regex b i u quote strike MatchCollect
  • 使用 appcompat-v7 更改操作栏中的后退箭头图像

    我有一个Actionbar from android support v7 widget Toolbar 它有带有向后箭头动画的汉堡包图像 我想将向后箭头从 我怎样才能在 Android Studio 中做到这一点 我在某处读到要更改它se
  • (接口)检测到类型服务的循环依赖

    我有2个接口 public interface IPedidoService UsuarioDrogueria CUsuarioDrogueria string userId int idDrogueria List
  • @SessionScoped CDI bean 注入时是一个不同的实例

    我的配置是一个 bean 我可以在代码中任何需要的地方注入它 然而 当注入时 我得到了一个新的 bean 实例 而不是会话中的实例 My bean Named SessionScoped public class TestModel imp
  • Django添加/删除表单无需多次提交

    我想要 Django 中的一个简单的编辑 删除表单 我希望它看起来像 Item A edit remove Item B edit remove Item C edit remove 我想编辑和删除 按钮 作为超链接 或者至少看起来像它们
  • 从自引用数据库表填充递归数据结构

    这个问题指的是http www matthidinger com archive 2009 02 08 asp net mvc recursive treeview helper aspx 假设我有一个如下所示的表 source matth
  • Docker-compose 未将环境变量传递给容器

    我正在使用 Docker 17 04 0 ce 使用 docker compose 1 12 0 构建 4845c56 在 Ubuntu 16 04 2 LTS 上构建 b31ff33 我只想传递一个环境变量并从在容器中运行的脚本中显示它
  • Docker 与 Vagrant

    据我了解 每个 Docker 镜像都基于基础图像 例如 Ubuntu 如果我想隔离任何进程 我应该部署 ubuntu docker 基础镜像 这里与 Vagrant 的区别在哪里 并在安装到 ubuntu 映像上后创建必要的子映像 那么 如
  • Heroku + Node(解析服务器)+ nginx 不工作

    我知道有一个类似的问题 但这个问题更具体 因为我有一个nginx服务器设置但是location参数没有任何影响 这是我的nginx conf erb daemon off Heroku dynos have at least 4 cores
  • SEHException .net 难题

    谁能解释为什么下面的代码会抛出错误 通过将 1 值转换为十进制 1M 更改运算符重载以接受 int 或不使用可为 null 的对象 可以轻松修复此问题 我注意到仅在 VS2008 中不会在 VS2010 中抛出该错误 class Progr
  • Microsoft.ExceptionMessageBox 没有被“找到”

    我有一个通过 clickOnce 部署的 winform 解决方案 有一个主项目 然后是一个名为psWinForms 该项目有一个参考Microsoft ExceptionMessageBox我在自定义错误报告中使用的 I have psW
  • 反转数组字符串中与 Javascript 中标点符号匹配的单词

    如何反转该字符串中的单词 包括标点符号 String prototype reverse function return this split reverse join var str This is fun hopefully str r
  • Flutter 项目 - XCode 构建失败

    这几天我一直在处理很多问题 我在pod文件中更新了需要更新的地方 我尝试了太多的方法来修复我的错误 我尝试删除我的 podfile 更新我的 podfile 我尝试 pod 更新 Firebase Firestore 然后我尝试用这种方法来
  • 如何从 Windows 10 UWP 应用连接到 SQL Server 数据库

    我正在尝试从通用 Windows 应用程序连接到本地 MS SQL 数据库 我正在使用 UWP 制作 LOB 应用程序 以支持桌面 平板电脑和移动设备使用 当尝试连接到本地 内联网 SQL Server 数据库时 我习惯于使用sql连接连接