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:在这种情况下,读取器会被关闭吗? 的相关文章

  • 强制仅从 DataReader 返回单行

    我似乎在我的代码中写了很多这样的内容 using var reader cmd ExecuteReader if reader Read result new User int reader UserId reader UserName T
  • 处理 SQL 连接

    我有一个连接到数据库并检索数据表的 SQL 类 我知道 SqlConnection 必须在完成后释放 我知道这可以使用using块 但是也可以接受Dispose 在这个类的析构函数中调用 这是我的代码 public class SQLEng
  • 如何用多个表填充数据集?

    我正在尝试填充包含 2 个具有一对多关系的表的 DataSet 我正在使用 DataReader 来实现此目的 public DataSet SelectOne int id DataSet result new DataSet using
  • 关闭 SQLDataReader - 如何判断它们是否已关闭?

    我发现我遇到了一些网站连接池问题 我正在追踪它们 我知道要寻找的一件事是确保所有 SQLDataReaders 都已关闭 我已经检查并确保它们已关闭 我脑海中浮现的一个问题是关于返回 SQLDataReaders 的方法以及它们如何关闭 或
  • 数据读取器检索数据

    我的数据库中有会员资格和预订表 其中包含属性 cust id 它是会员资格中的主键和预订中的参考键 当我执行数据读取器时 我希望它从会员表中读取 cust id 值 但它是从预订表中读取的 另外 当我比较两个 cust id 值时 1 个取
  • 访问 DataReader 中的特定行

    我有一个数据读取器 可以在 js 轮播中显示比赛周列表 我需要能够添加一个 if 语句来更改当前游戏周的 div 类 这是我当前的代码 if dReader HasRows while dReader Read gameweekList T
  • 人民博士。数据读取器 - 类型错误:字符串索引必须是整数

    直到今天 这段代码都运行得很好 现在我收到此错误消息 TypeError 字符串索引必须是整数 import pandas datareader as pdr Equity Indices GSPC ES F NQ F YM F RUT D
  • 在实体框架中执行存储过程,返回List或DataSet

    如何修改以下方法以返回 List 或 DataSet 我想让它变得通用 这样它就可以从数据库返回多个结果集 public static DataTable ExecuteStoredProcedure ObjectContext db st
  • 对 ComboBox 使用 NativeWindow 会导致 Dispose 方法出现异常

    在 C Windows Forms 中 我想拦截组合框的粘贴窗口消息 由于这无法通过覆盖组合框的 WndProc 方法来实现 因为我需要覆盖组合框内文本框的 WndProc 所以我决定创建一个 NativeWindow 类型的自定义类来覆盖
  • 数据读取器跳过第一个结果

    我有一个相当复杂的 SQL 查询 它根据客户 ID 从数据库中提取不同类型的产品 它提取三种不同类型的产品 通过其唯一标识符编号范围进行标识 即 ID 1000 1999 是一种产品类型 2000 2999 是另一种产品类型 3000 39
  • 从DataTable中获取布尔值

    如何检索数据集中的布尔值 我使用的是 Visual Studio 2003 我正在尝试以下操作 但它不起作用 if product inactive don t display and redirect to main page if db
  • 将 dataReader 转换为字典

    我尝试使用 LINQ 将一行转换为字典 fieldName gt fieldValue return Enumerable Range 0 reader FieldCount ToDictionary
  • 如何从 Datareader 获取多行

    这是我的代码 它工作正常 但只返回一行 正如您在 SQL 语句中看到的 我需要在表单中使用的数据网格中返回 2 行 虽然该过程读取 2 行 但它只显示一行 NameAddrmark 是字段的构造函数 public NameAddrmark
  • WPF - AvalonDock - 关闭文档

    我在 WPF 项目中将 AvalonDock 与 MVVM 结合使用 当我点击 X 选项卡的关闭按钮 时 我的文档将关闭但保留在内存中 看来只是隐藏而已 它没有从我的中删除Model Documents收藏 如果我添加DockingMana
  • WebMatrix Database.Query 与自定义 CommandTimeout

    考虑以下带有 TestTable 和过程的 TestDb USE TestDb GO DROP TABLE dbo TestTable IF NOT EXISTS SELECT 1 FROM sys tables WHERE name Te
  • 图像 PropertyItems 和已处置的 MemoryStream

    我正在加载一个Image from a byte using MemoryStream并通过检查图像来获取有关图像的信息ProperyItems 但在这样做的过程中 我注意到一些奇怪的行为 其中一些图像的PropertyItems正在消失
  • 如何使用 async 和 wait 正确处理

    我正在尝试进行代码替换Thread to Task 睡眠 延迟仅代表长时间运行的活动 static void Main string args ThreadDoWork TaskDoWork public static void Threa
  • 阅读器关闭时尝试读取无效

    我正在处理 C 和 MySql 请求 我正在尝试检索数据库中的数据 但出现此错误消息 阅读器关闭时尝试读取无效 感谢你们的帮助 我有这个功能 public MySqlDataReader GetValueFromTable string t
  • 阅读器关闭时调用元数据的尝试无效?

    我正在数据读取器上运行 if else 语句来查询表数据并激活 取消激活页面上的某些控件 我实现了一个 using 语句来在关闭块时自动关闭连接和阅读器 但我仍然在每个 if else 语句上收到阅读器已关闭错误 少了什么东西 代码如下 s
  • 如何使用 SqlDataReader 返回和使用 IAsyncEnumerable

    请看下面两种方法 第一个返回一个IAsyncEnumerable 第二个试图消耗它 using System Collections Generic using System Data using System Data SqlClient

随机推荐

  • 如何将.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 方法 不过 我遇