JDBC.SQLServerException:结果集没有当前行

2024-04-18

因此,我创建的解决方案引发了此异常:jdbc.SQLServerException: The result set has no current row在下面代码中标记的行上。

public String get64BitEncodedImageBySiteID(int siteID){
    try {           
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        Connection conn = DriverManager.getConnection(url, userName, password);

        Statement stmt = conn.createStatement();
        ResultSet rs = stmt.executeQuery( "SELECT SitePicture FROM SiteTable WHERE SiteID ="+siteID );

        rs.next();
        // The above line has since been moved to the if statement below where you can see it commented out,
        // which prevents the exception from occuring but still doesn't fix the fact that the row is not being found. 

        if(/*rs.next() &&*/ rs.getBytes("SitePicture")!=null){ // EXCEPTION THROWN HERE!
            byte ba[] = rs.getBytes("SitePicture");            
            return new sun.misc.BASE64Encoder().encodeBuffer(ba);
        }
        else {return null;}
    } catch (Exception ex) {
        ex.printStackTrace();
    }
    return null;
}

上面的方法,在抛出异常的实例中,从直接从同一个表中提取的实体对象中获取真实的 siteID (22379)。使用时System.out.println(siteID);在这个方法中,它声明该数字仍然是正确的,即仍然是22379。我通过在SQL Server中运行相同的语句直接与SQL Server进行检查,所以我知道该行存在于表中,但由于某种原因它没有被发现。下图。

所以问题是,结果集rs即使我知道它在那里,也没有找到该行。有人有任何有用的见解吗?

澄清:需要明确的是,我知道 ResultsSet 不包含任何行,这就是我收到异常的原因。我还知道将 rs.next() 放入 if 语句中将防止出现异常(如注释中所述)。令我困惑的是,事实上 ResultsSet 不包含任何行,尽管 ID 被解析的行确实存在,因为我直接使用 SQL Server 检查了它。


事实证明这是一个本地错误,但无论如何我都会发布解决方案,因为这种情况具有一定的教育价值。

正如我从 @Ralph 的评论中了解到的这个答案 https://stackoverflow.com/questions/20161896/spring-mvc-pagination-and-request-methods/20162675#20162675消除“不可能”是解决此类问题的好方法。

规避风险后siteID错误的(通过硬编码),我们有以下情况:

  • the 完全相同的查询在一种环境中工作,但不在另一种环境中工作,仅针对一个特定的环境SiteID, 2184
  • 这是不可能的ResultSet just 不起作用 for 这个特定的值 (I claim是的,因为我总是假设错误在my代码,不在语言库中)
  • 如果是这样,数据库必须不同
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JDBC.SQLServerException:结果集没有当前行 的相关文章

随机推荐

  • 防止 TWIG 删除变量前的空格

    我有这个用例 范围内的默认文本 将在整个页面中使用 使用 jQuery 将文本从 占位符 更改为 特定情况 Ie 在 html 中我想这样做 树枝 html 和 js block content set location span Some
  • MassTransit 是否支持基于 HTTP 传输的 MSMQ?

    HTTP 传输自 MSMQ 3 0 起就可用 但恐怕 MassTransit 不提供使用 HTTP 协议作为队列之间的传输协议的功能 关于这个有一个非常相似的问题here https stackoverflow com questions
  • 同时从多个应用程序访问网络摄像头

    问题背景 有两个不同的 Windows 应用程序正在尝试同时访问计算机上的网络摄像头 目前 只有一个应用程序能够访问它 我希望能够允许两个应用程序同时访问网络摄像头 我的问题的一个常见示例是 Skype 和 yahoo Messenger
  • 浏览器对 SVG SMIL(动画)的支持级别

    有谁知道流行浏览器中 SVG SMIL 动画支持的当前状态 看起来 Safari Chrome 和 Opera 都支持它 Firefox 在其开发页面中有关于已添加 SMIL 支持的令人困惑的报告 但我在 v3 6 中没有看到它 https
  • Java Comparator.comparing 不比较?

    下列的这个问题 https stackoverflow com questions 18129807 in java how do you sort one list based on another关于按另一个列表对列表进行排序 我尝试做
  • 删除列表内数据框中的列

    我根据 A 列中的因子水平 从数据框中创建了一个列表 在列表中 我想删除该列 我的脑子里在说 lapply 但没有别的意思 P A ID Test A 1 A 1 B ID Test B 1 B 3 B 5 进入这个 A Test 1 1
  • 由 VBA 关闭的工作簿未关闭引用的 IsAddin 工作簿

    Version Excel 2016 桌面版 Context VBA 项目 客户端 xlsb 具有对另一个工作簿的引用 工具 菜单 gt 引用 参考书目isn t一个插件 它是一个普通的 xlsb 文件 这会导致如果客户书籍仍处于打开状态
  • Scala 中对象的 Mockito

    我正在使用 Scala 2 10 specs2 和 Mockito 我想模拟 scala io Source fromURL 问题似乎是 fromURL 是一个函数io Source 的对象 http www scala lang org
  • C++:错误:“类”没有命名的成员

    对于我的毕业论文 我正在编写一些有限元代码 或者更准确地说 我正在修改现有程序 该程序基于我的教师提供的 2 类库 因此 我无法修改这些类 因为它们是通用的 我创建了一个类BurgersMSrc 它继承自父类ValSrc 我用一种方法扩展了
  • Java ImageWriter BufferedImage 到 GIF

    我希望你们能帮我解决这个问题 我不确定这是 Java 中的错误还是我做错了什么 但我会选择后者 我想将 BufferedImage 转换为 GIF 图像 然后我希望将 GIF 以字节数组的形式保存在内存中 我不想将文件保存到磁盘 该程序应该
  • >> Python 中的运算符

    什么是 gt gt 运营商做什么 例如下面的操作是做什么的10 gt gt 1 5 do 它是右移位运算符 将所有位向右 移动 一次 10 的二进制是 1010 向右移动它变成 0101 这是 5
  • Python 单击多个命令名称

    是否可以使用 Python Click 执行类似的操作 click command name my command my cmd def my command pass 我希望我的命令行是这样的 mycli my command and m
  • Spring JPA 原子获取或创建方法

    我正在使用 Spring Boot 和JPA with Hibernate 我有一个方法 进入我的服务 检查数据库中是否已存在特定实体 例如我 需要检查是否已经有用户 为此 我使用自定义 JPQL 查询我的 JPA 存储库 之后 如果上一步
  • 在 Android 中打开日历

    如何在按钮单击上打开日历并获取可单击的日期 看一下这个 http www developer com ws article php 3850276 Working with the Android Calendar htm http www
  • 如何使用 Phonegap 将图像加载到 HTML5 Canvas 上

    尝试将图像加载到 html5 画布上 然后使用 Phonegap 在 Android 上运行 html5 这是我的 HTML
  • Vaadin 14 组合框选择鼠标悬停时的工具提示

    我正在使用 Vaadin 14 Java 我有一个带有枚举的组合框作为可能的选择项 我想在组合框中显示枚举作为可能的选择 但我想在鼠标悬停 工具提示上显示较长的属性 名称 我看到旧版本的 Vaadin 也存在同样的问题 显然没有解决方案 并
  • CSS 注入在 content_scripts 中使用声明失败,但在通过注入的 JavaScript 加载时有效

    我注意到将 CSS 注入第三方页面的预期方式似乎无法正常工作 相关的manifest json部分 content scripts matches youtube com watch v css css youTubeInject css
  • 我无法访问 SQL 2005 实例的所有原因

    我已经安装了 SQL 2005 Express 的实例
  • 如何将循环中的变量更新为对循环内创建的值的引用?

    我想进入一个带有变量的循环n这是函数借用的 每一步 n取新值 当退出循环时 工作在其他变量的帮助下完成 并且n will never再次使用 如果我不使用引用 我会有这样的东西 fn test n Thing gt usize stuff
  • JDBC.SQLServerException:结果集没有当前行

    因此 我创建的解决方案引发了此异常 jdbc SQLServerException The result set has no current row在下面代码中标记的行上 public String get64BitEncodedImag