在 ASP.NET 中拉取多个记录集时的 DataReader 或 DataSet

2023-12-26

我有一个 ASP.NET 页面,其中有一堆需要填充的控件(例如下拉列表)。

我想单次访问数据库并带回多个记录集,而不是为每个控件进行往返。

我可以带回 DataSet 中的多个表,或者可以带回 DataReader 并使用“.NextResult”将每个结果集放入自定义业务类中。

使用 DataReader 方法我是否可能会看到足够大的性能优势,或者我应该只使用 DataSet 方法?

任何有关您通常如何处理此问题的示例将不胜感激。


  1. 如果你有超过1000个从您的数据库中获取的记录。
  2. 如果你不是很感兴趣 自定义存储和自定义分页 ”对于网格视图"
  3. 如果您的服务器有内存压力。
  4. 如果连接没有问题 每次该页面时您的数据库 叫。

那么我认为更好的是使用DataReader。

else

  1. 如果你的数量少于1000从您的数据库中获取的记录。
  2. 如果您有兴趣 存储和分页”为了 网格视图"
  3. 如果你的服务器没有内存 压力。
  4. 如果您想连接到您的 数据库只需一次即可获取 的好处Caching.

那么我认为更好的是使用DataSet。

我希望我是对的。

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

在 ASP.NET 中拉取多个记录集时的 DataReader 或 DataSet 的相关文章

随机推荐

  • 休眠:内存问题?缺点?

    我正在使用 Hibernate 3 6 直到今天我还没有发现使用它的任何缺点 但今天有人告诉我 当项目变大时 使用 Hibernate 的应用程序会出现内存问题 发生这种情况是因为与不使用 hibernate 的应用程序相比 需要创建和存储
  • Flutter 在 facebook 应用 android 和 ios 中打开 facebook 链接

    在我的应用程序中 我存储了 Facebook 网址 我想在 Facebook 应用程序中打开它们 而不是在浏览器中 我尝试使用flutter url launcher 包但它在默认浏览器中打开链接 我想要的是直接打开链接进入脸书应用程序 谁
  • Python 中的 RAII - 离开范围时自动销毁

    我一直在努力寻找RAII https en wikipedia org wiki Resource acquisition is initialization在Python中 资源分配即初始化是 C 中的一种模式 其中 对象在创建时就被初始
  • C 中的字符与多个字符的比较

    如何在不使用 if 的情况下将 C 中的字符与其他字符进行比较 有大量的 例如 假设我有一个名为 i 的字符 我想将其与其他 8 个字符进行比较 而这些字符之间没有任何联系 如果 i 至少等于这 8 个字符中的一个 则表达式为 true 像
  • Admob ( GoogleMobileAds 8.0.0 ) iOS SDK - 未找到 GADInterstitial API,如何使用 GADInterstitialAd - 请提供示例代码?

    以下行没有错误 import
  • 如何增加消息头

    Spring Integration Java DSL 有没有办法修改现有的消息头 我正在使用 SI Java DSL 重新实现下载重试机制 并且希望在发生失败时增加保存下载尝试的消息标头 然后根据与限制相比的尝试次数路由消息 我的路由基于
  • 如何将 google-chrome 设置为 git 默认浏览器

    I want GIT默认情况下在 Chrome 浏览器中打开帮助页面 尽管 Windows 7 默认浏览器是 IE 但由于其他原因我无法更改 我已将以下内容添加到 git 配置文件中 web browser chrome browser c
  • 如何在Java中使用图形输入板? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 几周前 我购买了 Wacom Bamboo 绘图板 我想开发一个小型的java应用程序 它可以捕获用户
  • Titanium 安装后 NPM install -g 不起作用

    我已经在我的 mac 上安装了 Titanium 现在每当我尝试全局安装任何 npm 软件包时都会失败 我的安装的输出是 npm http 304 https registry npmjs org loggly npm http GET h
  • 如何创建一个开关案例,案例是间隔?

    我想创建一个开关 案例 其中案例可以有间隔作为条件 例如 switch 1 lt 21 do one stuff 21 31 do another 我怎样才能达到这个结果 在Python 3 10中 https docs python or
  • Azure 上的 Asp.net MVC 5.2.2

    将 mvc nuget 包从版本 5 1 0 升级到 5 2 2 后 我们在 Azure 上的计算机 webrole 拒绝启动 Web 角色 它处于回收状态 我在事件日志中发现了一个错误 The description for Event
  • 如何将字符串截断为最多 N 个字符?

    预期的方法String truncate usize https doc rust lang org std string struct String html method truncate失败是因为它不考虑 Unicode 字符 考虑到
  • 如何处理 cv::VideoCapture 解码错误?

    我使用 OpenCV 的 VideoCapture 使用 ffmpeg 支持编译 从 IP 摄像机流式传输 H264 内容 到目前为止 一切正常 但每隔一段时间我就会遇到解码错误 我猜是来自 ffmpeg h264 0x103006400
  • 查找单个元素上的所有数据属性

    有人知道一种快速有效的方法来从单个元素中获取所有数据属性吗 我意识到 jQuerys data 会这样做 但是它不会给我使用 attr 设置的数据属性 除非我首先使用 data 选择数据属性 此外 您无法通过使用 data 添加的数据属性来
  • 如何在 Swift 中将 [Int8] 转换为 [UInt8]

    我有一个仅包含字符的缓冲区 let buffer Int8 然后我需要将其传递给一个函数process以 UInt8 作为参数 func process buffer UInt8 some code 传递 Int8 缓冲区以转换为 Int8
  • 按年龄对某个范围内的用户进行分组

    我有一些数据需要进行一些统计 我需要按年龄对用户进行分组 var byAge displayResult GroupBy x gt x Age 我可以按照上面的方法做 然而 这给了我 19 20 21 等年龄 我想要的是按 10 岁对年龄进
  • 使用 REST API 创建项目后,将用户作为管理员分配给项目 - Azure DevOps

    我正在尝试将用户分配为项目的管理员 并通过 Azure DevOps 中的 REST API 更改所有者 你们中的任何人都可以向我指出一些如何完成此操作的文档吗 我已经查看了 UserEntitlements API 和 Project A
  • 重试 HTTP(S) POST,直到在 Android 上成功

    我有一些数据将通过 http s 从 Android 应用程序发送到服务器 需要按顺序发送 是否已经存在一种对 http 请求进行排队 针对同一服务器 并重试它们直到完成 不一定成功 的方法 我的问题是如果没有网络覆盖 http请求可能会失
  • 如何更改C# Winform中文本框中某些子字符串的字体颜色?

    如果我想将文本文件上传到文本框中并希望通过字体颜色更改突出显示某些单词 我知道我需要编写TextBox ForeColor Color SomeColor 但如果我想要那个并非所有文本都会出现在same color 只有一些子串 我怎样才能
  • 在 ASP.NET 中拉取多个记录集时的 DataReader 或 DataSet

    我有一个 ASP NET 页面 其中有一堆需要填充的控件 例如下拉列表 我想单次访问数据库并带回多个记录集 而不是为每个控件进行往返 我可以带回 DataSet 中的多个表 或者可以带回 DataReader 并使用 NextResult