阅读器关闭时尝试读取无效

2023-11-29

我的应用程序有一个通用数据库类,在该类中我有一个函数

public MySqlDataReader getRecord(string query)
        {
            MySqlDataReader reader;
            using (var connection = new MySqlConnection(connectionString))
            {
                connection.Open();
                using (var cmd = new MySqlCommand(query, connection))
                {

                    reader = cmd.ExecuteReader();
                    return reader;

                }
            }

            return null;
        }

在我使用的页面后面的代码上

String sql = "SELECT * FROM `table`";
MySqlDataReader dr = objDB.getRecord(sql);
if (dr.Read())
{
   // some code goes hear
} 

我有错误阅读器关闭时尝试读取无效。

我知道数据库连接关闭后访问阅读器是不可能的 机器人我正在寻找解决方法其中我不需要在代码隐藏中进行更改

编辑:我喜欢将阅读器分配给其他对象(类似于阅读器)的解决方案,然后返回该对象所以我不需要更改所有应用程序页面


您可以将查询结果加载到内存中,然后关闭连接并仍然返回IDataReader效果如预期。请注意,这会消耗内存。

public IDataReader getRecord(string query)
    {
        MySqlDataReader reader;
        using (var connection = new MySqlConnection(connectionString))
        {
            connection.Open();
            using (var cmd = new MySqlCommand(query, connection))
            {

                reader = cmd.ExecuteReader();
                var dt = new DataTable();
                dt.Load( reader );
                return dt.CreateDataReader();
            }
        }

        return null;
    }

在来电者中:

String sql = "SELECT * FROM `table`";
var dr = objDB.getRecord(sql); // or DataTableReader dr = ...
if (dr.Read())
{
    // some code goes here
} 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

阅读器关闭时尝试读取无效 的相关文章

  • 在 Xamarin Android 中将图像从 URL 异步加载到 ImageView 中

    我有一个包含多个项目的 ListView 列表中的每个项目都应该有一个与之关联的图像 我创建了一个数组适配器来保存每个列表项并具有我希望加载的图像的 url 我正在尝试使用 Web 请求异步加载图像 并设置图像并在加载后在视图中更新它 但视
  • fgets() 和 Ctrl+D,三次才能结束?

    I don t understand why I need press Ctrl D for three times to send the EOF In addition if I press Enter then it only too
  • Cygwin 下使用 CMake 编译库

    我一直在尝试使用 CMake 来编译 TinyXML 作为一种迷你项目 尝试学习 CMake 作为补充 我试图将其编译成动态库并自行安装 以便它可以工作 到目前为止 我已经设法编译和安装它 但它编译成 dll 和 dll a 让它工作的唯一
  • 为什么 POSIX 允许在只读模式下超出现有文件结尾 (fseek) 进行搜索

    为什么寻找文件结尾很有用 为什么 POSIX 让我们像示例中那样在以只读方式打开的文件中进行查找 c http en cppreference com w c io fseek http en cppreference com w c io
  • 为什么禁止在 constexpr 函数中使用 goto?

    C 14 对你能做什么和不能做什么有规则constexpr功能 其中一些 没有asm 没有静态变量 看起来相当合理 但标准也不允许goto in constexpr功能 即使它允许其他控制流机制 这种区别背后的原因是什么 我以为我们已经过去
  • HttpClient 像浏览器一样请求

    当我通过 HttpClient 类调用网站 www livescore com 时 我总是收到错误 500 可能服务器阻止了来自 HttpClient 的请求 1 还有其他方法可以从网页获取html吗 2 如何设置标题来获取html内容 当
  • 当 Cortex-M3 出现硬故障时如何保留堆栈跟踪?

    使用以下设置 基于 Cortex M3 的 C gcc arm 交叉工具链 https launchpad net gcc arm embedded 使用 C 和 C FreeRtos 7 5 3 日食月神 Segger Jlink 与 J
  • .Net Core / 控制台应用程序 / 配置 / XML

    我第一次尝试使用新的 ConfigurationBuilder 和选项模式进入 Net Core 库 这里有很多很好的例子 https docs asp net en latest fundamentals configuration ht
  • 如何在 Team Foundation 上强制发表有意义的签入评论?

    我有一个开发团队有一个坏习惯 他们写道poor签入评论 当我们必须在团队基础上查看文件的历史记录时 这使得它成为一场噩梦 我已经启用了变更集评论政策 这样他们甚至可以在签到时留下评论 否则他们不会 我们就团队的工作质量进行了一些讨论 他们很
  • 是否有比 lex/flex 更好(更现代)的工具来生成 C++ 分词器?

    我最近将源文件解析添加到现有工具中 该工具从复杂的命令行参数生成输出文件 命令行参数变得如此复杂 以至于我们开始允许它们作为一个文件提供 该文件被解析为一个非常大的命令行 但语法仍然很尴尬 因此我添加了使用更合理的语法解析源文件的功能 我使
  • 更改窗口的内容 (WPF)

    我创建了一个简单的 WPF 应用程序 它有两个 Windows 用户在第一个窗口中填写一些信息 然后单击 确定 这会将他们带到第二个窗口 这工作正常 但我试图将两个窗口合并到一个窗口中 这样只是内容发生了变化 我设法找到了这个更改窗口内容时
  • 网络参考共享类

    我用 Java 编写了一些 SOAP Web 服务 在 JBoss 5 1 上运行 其中两个共享一个类 AddressTO Web 服务在我的 ApplycationServer 上正确部署 一切都很顺利 直到我尝试在我的 C 客户端中使用
  • 用 C 实现 Unix shell:检查文件是否可执行

    我正在努力用 C 语言实现 Unix shell 目前正在处理相对路径的问题 特别是在输入命令时 现在 我每次都必须输入可执行文件的完整路径 而我宁愿简单地输入 ls 或 cat 我已经设法获取 PATH 环境变量 我的想法是在 字符处拆分
  • 什么是 C 语言的高效工作流程? - Makefile + bash脚本

    我正在开发我的第一个项目 该项目将跨越多个 C 文件 对于我的前几个练习程序 我只是在中编写了我的代码main c并使用编译gcc main c o main 当我学习时 这对我有用 现在 我正在独自开展一个更大的项目 我想继续自己进行编译
  • 作为字符串的动态属性名称

    使用 DocumentDB 创建新文档时 我想设置属性名称动态地 目前我设置SomeProperty 像这样 await client CreateDocumentAsync dbs db colls x new SomeProperty
  • char指针或char变量的默认值是什么[重复]

    这个问题在这里已经有答案了 下面是我尝试打印 char 变量和指针的默认值 值的代码 但无法在控制台上看到它 它是否有默认值或只是无法读取 ASCII 范围 include
  • 如何解决 MySQL innodb 在 TRUNCATE TABLE 上“等待表元数据锁”?

    在 GitLab CI 服务器中运行包含数百个应用程序单元测试的测试套件 运行 10 次测试后 不知怎的 它总是卡在等待 TRUNCATE TABLE 上的表元数据锁上 这是一个拆卸步骤 我知道SHOW ENGINE INNODB STAT
  • 让 Prometheus 发送 SQL 查询

    我正在尝试使用普罗米修斯 https prometheus io 监视我的 MySQL 数据库 但似乎找不到添加 SQL 查询的区域 例如 我想运行一个返回值的 SQL 查询 然后将该值添加到图表中 发送警报 有没有办法让 Promethe
  • 通过将行旋转为动态数量的列来在 MySQL 中创建摘要视图

    我在 MySQL 中有一个表 其中包含以下字段 id company name year state 同一客户和年份有多行 以下是数据示例 id company name year state 1 companyA 2008 1 2 com
  • 如何将字符串“07:35”(HH:MM) 转换为 TimeSpan

    我想知道是否有办法将 24 小时时间格式的字符串转换为 TimeSpan 现在我有一种 旧时尚风格 string stringTime 07 35 string values stringTime Split TimeSpan ts new

随机推荐

  • 使用 .pth 文件

    我正在尝试使模块在我没有全局写入权限的系统上可发现site packages目录 并且不改变环境 PYTHONPATH 我试图放置一个 pth文件与我正在执行的脚本位于同一目录中 但它似乎被忽略 例如 我创建了一个文件extras pth包
  • 使用 Maven 构建完整的应用程序文件夹

    大多数 Java 独立应用程序在部署到生产环境后最终都会出现在如下所示的文件夹中 myapp gt lib here lay all dependencies gt config here lay all the config files
  • 在 JavaScript 中将十六进制转换为浮点数

    我想将带有分数的以 10 为底的数字转换为以 16 为底的数字 var myno 28 5 var convno myno toString 16 alert convno 那里一切都很好 现在我想将其转换回十进制 但现在我不能写 var
  • 使用 Jetpack 的 Android 导航组件销毁/重新创建的片段

    我正在尝试实施使用 Jetpack 架构组件进行导航在我现有的应用程序中 我有一个活动应用程序 其中主要片段 ListFragment 是一个项目列表 目前 当用户点击列表项时 第二个片段将添加到堆栈中fragmentTransaction
  • 如何在 Android 中实现“Lettrine”渲染?

    我有一个小问题 如何在 Android 中实现 Lettrine 删除首字母大写字母 渲染 我的意思是 一个自动渲染 lettrine 的小部件 这是我正在寻找的示例 我很确定没有 简单的方法 可以做到这一点 但如果有的话可以帮助 欢迎所有
  • ARM BLX 指令范围(绝对)

    我有一个关于 ARM BLX 指令的问题 特别是关于 BLX RX 指令的问题 ARM手册上规定 对于BLX标签 标签应在32MB范围内 在我的代码中 我将 R0 寄存器设置为指向地址 1 我当前的地址和address1 目标地址 之间的距
  • 适用于armv7和arm64的Theos

    我正在尝试让 theos 在 OSX Mavericks 上工作 我最近购买了一部 iPhone 5s 并从那时起对其进行了越狱 现在我正在尝试让 Theos 工作 这样我就可以再次开始进行一些调整 我让它在 OSX Lion 以及 IOS
  • 将日期设置为从今天起 7 个工作日(不包括周末和公众假期)

    我尝试将日期设置为从今天算起 7 个工作日 不包括周末和英国公共假期 我首先将默认日期设置为今天的日期 todaysDate 7 天 todayPlusSevenDays 然后我计算todaysDate 和todayPlusSevenDay
  • 从 http 响应中保存角度文件

    我想知道如何以角度保存服务器响应中包含的文件 以便响应到达时自动下载文件 Edit 我有一个 http post 方法 我在响应中获取 pdf 数据 成功后 我想将响应数据保存为 pdf 文件 E g http method POST ur
  • 我需要一个快速的运行时表达式解析器

    我需要找到一个快速 轻量级的表达式解析器 理想情况下 我想向它传递一个名称 值对列表 例如变量 和一个包含要评估的表达式的字符串 我需要从中返回的只是一个真 假值 表达式的类型应遵循以下原则 varA xyz and varB 123 基本
  • 地图 V2 myLocation 蓝点回调

    我希望能够单击地图上显示的蓝点 我的位置 无论如何可以从该点击中获得回调吗 谢谢 马丁 一种可能的解决方法可能是绘制一个Marker 带有类似的图标 位于 我的位置 点的顶部 以便您可以收到相应的信息onMarkerClick 打回来 这还
  • C/C++ 将signed char 打包成int

    我需要将四个有符号字节打包为 32 位整数类型 这就是我想到的 int32 t byte int8 t c return unsigned char c int pack char c0 char c1 return byte c0 byt
  • htmlentities() 使汉字无法使用

    我们有一个 Web 应用程序 允许用户在文本区域中输入自己的 html 我们将该数据保存到我们的数据库中 当我们将html数据加载到文本区域时 当然 我们在将html数据扔到文本区域之前使用htmlentities 否则 用户可以在文本区域
  • 代码运行速度太慢

    我正在尝试运行一段代码 将值从一个电子表格复制到另一个电子表格 但是顺序不同 很难使其成为数组 在某些情况下 它还会打印 未知 在某些情况下 它还会格式化某些单元格 然而 这需要很长时间才能完成 有办法改善吗 function move v
  • 生成本地化 javadoc

    我想知道是否有一种生成本地化 javadoc 的简单方法 我想翻译 例如法语 标题和关键字 而不是 html 中的 return parameter class 正如马特 鲍尔所说 你可以提供 localejavadoc 的选项来影响某些事
  • iOS 8 Swift 导航栏标题、按钮未显示在基于选项卡的应用程序中

    我正在尝试跟随本教程 这个答案 and 这个答案在 iOS 8 Swift 中为基于选项卡的应用程序中的每个选项卡创建导航栏 但导航栏上没有显示标题或按钮 这是我到目前为止所拥有的 AppDelegate swift func applic
  • java的日期格式问题

    我从 Joynet 云 API 服务器获取日期格式 2012 11 20T10 26 04 00 00 但是 我不知道如何处理最后一段 00 00 我把除了 00 00以外的格式都做了 SimpleDateFormat fmt new Si
  • 我无法写入 EditText,当我尝试写入内容时它会消失,因为当我修改数据时调用 getView()

    EDIT 我发现原因是当我尝试时 getView 被调用 编辑一些内容 以便加载来自 DataAdapter 的数据并进行我的编辑 变化消失 EDIT 我观察到一件事 如果列表视图中的行数很少 那么它的 好的 但是如果有很多行列表视图无法显
  • 如何将文件写入外部 SD 卡而不是设备存储中?

    我试过这个 public String getFilename File file new File Environment getExternalStorageDirectory Test2 if file exists file mkd
  • 阅读器关闭时尝试读取无效

    我的应用程序有一个通用数据库类 在该类中我有一个函数 public MySqlDataReader getRecord string query MySqlDataReader reader using var connection new