SqlDataReader:在这种情况下,读取器会被关闭吗?

2024-01-08

我正在清理我继承的旧 .NET 1.1 项目中的 DataReader。

以前的开发人员以大多数 DAL 方法返回 SqlDataReaders 的方式对数据访问层进行编码(因此由调用者正确调用 .Close() 或 .Dispose() 方法)。

不过,我遇到过一种情况,调用者没有捕获返回的 SqlDataReader (因此没有正确处理它)。请参阅下面的代码:

数据存取方法:

Public Shared Function UpdateData() As SqlDataReader
   ...

   drSQL = cmdSQL.ExecuteReader(CommandBehavior.CloseConnection)

   Return drSQL

End Function

调用代码:

...
DataAccessLayer.UpdateData()
...

如您所见,调用方法不会接收/捕获返回的 SqlDataReader。那么会发生什么呢? SqlDataReader 仍然存在并打开吗?或者它会自动收集垃圾,因为没有任何东西可以解决它?

我想不出一种方法来调试和测试它。如果有人有任何想法或建议,那就太好了。


我相信它会被关闭,但直到垃圾收集器开始处理它,这可能不会持续很长时间......

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

SqlDataReader:在这种情况下,读取器会被关闭吗? 的相关文章

随机推荐

  • 如何将.fs文件编译为.exe?

    我没有找到将简单文件 fs 编译为 exe 的方法 我尝试了这个例子 但它不起作用 在文件 dolphin fs 中 let longBeaked Delphinus capensis let shortBeaked Delphinus d
  • XHTML 网站抓取指南

    我对 VBA 和 HTML XHTML 非常陌生 但是通过在线研究和这里其他优秀成员的帮助 我已经成功编写了一段代码来提取我想要的数据 我很难识别我想要的元素的 ID 因为它是 XHTML 格式的 所以我认为这是我搞砸的地方 网站 这是我想
  • 弱属性需要大量开销?

    在大约 100 000 次 setDelegate 调用后 我的 iOS 应用程序在 setDelegate 上停滞了大约 15 秒 将委托属性从弱更改为分配可以解决该问题 知道为什么弱属性有如此多的开销并导致应用程序停止运行吗 我怀疑弱引
  • 如何检查字节数组是否是有效图像?

    我知道没有用于检查的 Net 函数 但是在使用字节数组之前是否有一种算法或简单有效的方法来检查字节是否是有效图像 我需要这个 因为我要向不断监听客户端的服务器发送不同的命令 其中一个命令是获取服务器计算机的屏幕截图 您可以尝试从字节数组生成
  • ExecuteNonQuery() 始终返回 -1

    我正在使用存储过程在表中插入一些值 CREATE PROCEDURE dbo Sp InsertValue Val1 as nvarchar 50 Val2 as nvarchar 50 as BEGIN IF NOT EXISTS SEL
  • 如何向 Meteor.users 集合添加字段

    我想要存储在客户端用户文档中的 Facebook accessToken 继流星文档 http docs meteor com meteor users 我应该添加一个新的发布调用 在 server js 中 Meteor publish
  • Curl 发送 .tar.gz 文件时出现错误 56“从对等方接收数据时失败”

    我对这个 CURL 调用有问题 curl X POST data binary File01 tar gz http website intra prova it gore orgac PINGU TEST lots Test 017 co
  • Ruby Guard 问题 - “请安装 sqlite3 适配器” -railstutorial.org

    我正在跟随Ruby on Rails 教程 http ruby railstutorial org 并且在测试部分有些困惑 特别是 3 6 2 使用 Guard 进行自动化测试 http ruby railstutorial org cha
  • 从 Ubuntu 中删除 chromedriver

    我想更新按照此说明安装的 chromedriver 版本https christopher su 2015 selenium chromedriver ubuntu https christopher su 2015 selenium ch
  • 使用 jersey ServletContainer 时从 web.xml 获取配置数据

    我正在使用 jersey 在 Tomcat 中创建一个 web 应用程序 我还没有创建 Servlet 我只是使用 jersey ServletContainer 和一些 Resource 类 我的 web xml
  • 在 mac bash 终端中使用 shell 命令时出现“非法字节序列”错误

    尝试在 MacOS bash shell 中从大文件中提取非英文字符时出现 非法字节序列 错误 这是我尝试使用的脚本 sed s a z 0 9 A Z g lt 1 gt Abhineet extract1 txt sed s 1 g
  • 将不同的集合绑定到数据网格

    我有一些收藏 例如 List 1 and List 2 两者都是List 我需要做什么 1 将它们插入Datagrid 2 添加新项目Lists 例如 表单上有一些按钮 我单击它 新项目将添加到第一个列表中 Datagrid现在看起来像这样
  • 如何在 C 中将结构存储和检索到共享内存区域

    对于uni分配 我需要创建一个最多包含10个文件名的循环列表 然后将它们存储在共享内存区域中 以便2个子进程可以读取 写入该列表 使用信号量来控制访问 问题是 我是一个完全的 C 新手 我感到失落和绝望 因为它完全超出了我的能力范围 我需要
  • 如何查询 Google BigQuery 表并根据列的子集删除重复项?

    我有一个查询连接两个 google 表并生成一个包含 6 列的表 a b c d e f 接下来 我将该表移至 google 存储桶 然后将该 google 存储桶下载到一堆 CSV 最后我将这些 CSv 插入到postgres数据库表有2
  • 如何判断用户是否点击了浏览器后退按钮或刷新按钮

    我需要确定用户是否单击浏览器后退按钮或刷新按钮 当他单击后退或刷新按钮时 我需要将页面重定向到错误页面 这个怎么做 我需要在 ASP net 页面的 javascript 中执行此操作 首先 如果用户使用 后退 或出于某种原因必须刷新页面
  • 如何使用Spring正确关闭执行器服务?

    我有一个命令行应用程序 它使用由 java 组成的 Spring 管理的 beanExecutorService创建于 ExecutorService service Executors newFixedThreadPool 4 现在 我希
  • ObjectAnimator导致ImageView消失

    我正在制作动画ImageView在 Android API 19 中 使用ObjectAnimator 我一切正常 在 Galaxy S3 上显示完美 但在我的 Nexus 7 2013 WiFi 型号 上却出现问题 目标是使用以下命令让图
  • “git push --mirror”足以备份我的存储库吗?

    我是一名独立开发人员 在本地 Git 存储库中工作 对于备份 我想将该存储库的精确副本发送到另一台服务器 这样做就足够了吗 git push mirror 我这么问是因为有时我可以在 Git 告诉我 一切都是最新的 之前运行这个命令两到三次
  • 通用列表到 CSV 字符串

    我有一个列表想要写入 CSV 字符串 我发现的例子似乎都是针对单个项目列表 我的有多个项目 我目前拥有的代码是 private static string CreateCSVTextFile
  • SqlDataReader:在这种情况下,读取器会被关闭吗?

    我正在清理我继承的旧 NET 1 1 项目中的 DataReader 以前的开发人员以大多数 DAL 方法返回 SqlDataReaders 的方式对数据访问层进行编码 因此由调用者正确调用 Close 或 Dispose 方法 不过 我遇