`
zithan
  • 浏览: 180081 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

只进结果集不支持请求的操作的“解决方法”

阅读更多

问题:

在分页时,常因为是新手会出现如下的问题:

 

com.microsoft.sqlserver.jdbc.SQLServerException: 只进结果集不支持请求的操作。

at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)

at com.microsoft.sqlserver.jdbc.SQLServerResultSet.throwNotScrollable(Unknown Source)

at com.microsoft.sqlserver.jdbc.SQLServerResultSet.verifyResultSetIsScrollable(Unknown Source)

at com.microsoft.sqlserver.jdbc.SQLServerResultSet.absolute(Unknown Source)

at org.apache.tomcat.dbcp.dbcp.DelegatingResultSet.absolute(DelegatingResultSet.java:335)

at com.rsglxt.db.ManageDB.getImpList(ManageDB.java:78)

at com.rsglxt.manage.ImpleeyListAction.getImpList(ImpleeyListAction.java:199)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:517)

at ognl.OgnlRuntime.getMethodValue(OgnlRuntime.java:931)

at ognl.ObjectPropertyAccessor.getPossibleProperty(ObjectPropertyAccessor.java:53)

at ognl.ObjectPropertyAccessor.getProperty(ObjectPropertyAccessor.java:121)

at com.opensymphony.xwork2.util.OgnlValueStack$ObjectAccessor.getProperty(OgnlValueStack.java:58)

at ognl.OgnlRuntime.getProperty(OgnlRuntime.java:1643)

at com.opensymphony.xwork2.util.CompoundRootAccessor.getProperty(CompoundRootAccessor.java:101)

at ognl.OgnlRuntime.getProperty(OgnlRuntime.java:1643)

at ognl.ASTProperty.getValueBody(ASTProperty.java:92)

at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:170)

at ognl.SimpleNode.getValue(SimpleNode.java:210)

at ognl.Ognl.getValue(Ognl.java:333)

at ognl.Ognl.getValue(Ognl.java:310)

…………

…………

…………

…………

 


解决方法:

 

因为在创建stmt容器的时候,没有加上如下红色的参数:

 

stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);

 

其意为创建一个滚动的结果集,相信大家看参数的英文意思,也能明白啦,scroll=滚动

 

如果没有加上这个参数,那么这个结果集就只能迭代一次,就不能rs.XXXX调用ResultSet下的某些方法了

 

这也是程序中抛出的异常:说结果集只进的原因了!!!

分享到:
评论
1 楼 思念-悲伤 2013-12-16  
“那么这个结果集就只能迭代一次”,这句话是什么意思?

相关推荐

    只进结果集不支持请求的操作的“解决方法

    ### 只进结果集不支持请求的操作的解决方法 在数据库操作中,有时会遇到一些异常情况,比如尝试对一个不支持滚动(scroll)或某些特定操作的结果集进行操作时,系统可能会抛出异常。本篇文章将针对此类问题提供详细...

    com.microsoft.sqlserver.jdbc.SQLServerException: 只进结果集不支持请求的操作 解决方案

    具体而言,当使用`setFirstResult()`和`setMaxResults()`方法对查询结果集进行限制时,如果结果集被标记为只进(forward-only),则不支持这些操作,从而引发异常。这是因为只进结果集是为了提高性能而设计的,它...

    获取多个结果集(2.0)

    5. **处理第一个结果集**:通过SqlDataReader的Read方法逐行读取第一个结果集。如果需要访问列值,可以使用Get方法,如GetInt32、GetString等,指定列的索引。通常,我们会在一个循环中处理这些行,直到Read返回...

    SQL 游标详细介绍

    - 客户端游标:在客户端缓存整个结果集,仅支持只进和静态游标,所有操作都在客户端完成,不支持其他类型的游标。 3. 游标的生命周期 游标的生命周期包括声明、打开、读取数据、关闭和释放五个阶段。声明游标定义...

    SQLServer教程:详细学习游标(1)[借鉴].pdf

    API客户端游标则将整个结果集缓存在客户端,仅支持只进和静态游标,不支持滚动和其他类型。 游标的生命周期包括声明、打开、读取数据、关闭和释放五个阶段。声明游标定义了游标的属性和SELECT语句,打开游标执行...

    C#数据库操作常用的操作方法与应用

    除了上述两种方法,C#还提供了其他数据库操作方式,如使用SqlDataAdapter和DataSet进行填充数据集,或者使用Entity Framework这样的ORM框架进行更高级别的数据操作。不过,SqlDataReader和存储过程是数据库操作的...

    sql三种方法

    这种方法允许在内存中存储整个结果集,便于离线处理数据,但不适合处理大数据集。 3. **使用SqlCommand对象和ExecuteNonQuery/ExecuteScalar**: - `ExecuteNonQuery()`用于执行非查询操作,如INSERT、UPDATE、...

    c# 数据库操作大全 源代码 很全

    4. **数据查询**:查询数据库通常使用SELECT语句,可以通过SqlCommand的ExecuteReader方法获取结果集。DataReader对象是一个只进型数据流,适用于处理大量数据。对于更复杂的数据操作,可以使用SqlDataAdapter填充...

    C#操作数据库的实际应用_C#操作数据库的实际应用_源码

    DataReader是数据库查询结果的只进流,它能高效地按需读取一行接一行的数据,但不支持随机访问。使用DataReader时,通常会配合使用using语句块以确保在完成后关闭数据流。 数据集(DataSet)是离线数据存储的一个...

    C#数据库操作总结123

    7. 阅读器(SqlDataReader):SqlDataReader提供一种只进的、快速的流式访问数据库结果集的方式。它用于处理大量数据,因为不需要一次性加载所有数据到内存。 8. 存储过程:在C#中,可以通过SqlCommand调用SQL ...

    C#的数据库操作例程

    5. **数据读取器**: `SqlDataReader`是一个只进型流式数据读取器,用于高效地逐行读取数据库结果集。适用于大量数据的读取,但不支持数据修改。 6. **事务处理**: 通过`Transaction`对象,可以在C#中实现数据库事务...

    使用C#语言实现的数据库IO工具,该工具集成了常用的增删改查操作.zip

    8. 数据读取器(DataReader):DataReader是一个只进型数据流,用于高效地读取数据库中的数据,但不支持离线操作。相比于DataSet,它占用更少的内存,适合处理大量数据。 9. 数据库IO操作:本项目中,C#的数据库IO...

    SQL SERVER JDBC 3.0

    - **游标支持**:允许前后移动结果集,支持只读、只进、可滚动等多种模式。 - **事务管理**:支持JDBC的事务隔离级别,如READ UNCOMMITTED、READ COMMITTED、REPEATABLE READ和SERIALIZABLE。 - **类型映射**:将...

    推选数据库操作3PPT资料.ppt

    例如,可以使用Command对象的ExecuteNonQuery()方法执行插入或更新操作,ExecuteReader()方法获取查询结果。而在离线操作中,数据先被加载到DataSet中,然后在应用程序内部处理,不直接与数据库交互,直到需要时才...

    C#数据库操作基础实验

    下面将详细介绍C#中数据库操作的基础知识,包括连接数据库、执行SQL语句、处理结果集等关键概念。 首先,C#通过ADO.NET(.NET Framework的一部分)框架来实现对数据库的操作。ADO.NET提供了一套完整的组件和服务,...

    【第一讲连接数据库】-01B-SqlConnection对象使用.rar )

    SqlDataReader是一种只进的、不可滚动的结果集,适合处理大量数据。 了解并熟练使用SqlConnection对象,是进行.NET数据库编程的基础。通过合理地创建、打开、关闭和管理连接,以及配合SqlCommand和SqlDataReader...

    ASP技术常遇问题解答-如何定义记录集打开的游标类型?.zip

    适用于只需一次遍历记录集且不需要反复定位记录的简单操作。 在ASP中定义记录集打开的游标类型,可以通过以下代码实现: ```vbscript Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset conn.Open...

    c#数据库操作数据库管理源码.rar

    4. SqlDataReader:当执行查询时,通常会使用SqlDataReader来读取结果集。这是一个只进、只读的数据流,可以逐行读取数据,提高性能。 5. SqlDataAdapter:在需要将数据填充到DataSet或DataTable时,DataAdapter...

    C#中用数据集读取Xml文件

    数据集不直接与数据库交互,而是通过数据适配器(DataAdapter)填充,它可以容纳多个DataTable,每个DataTable代表一个表格。 读取XML文件到数据集的步骤如下: 1. 引入必要的命名空间: 首先,你需要引入System....

    C#操作SQL经典.docx

    它非常适合处理大量数据,因为它不需要在内存中保留整个结果集。在`Read()`方法中,通过SqlDataReader遍历查询结果并填充DataTable。 4. **DataSet和SqlDataAdapter**: 这两者配合使用,可以实现离线数据处理,即断...

Global site tag (gtag.js) - Google Analytics