ASP技巧:rs.getrows方法

 GetRows()方法是将数据从 Recordset 复制到二维数组中,这是一个二维数组,第一个下标标识字段,第二个则标识记录号,所以 rsArray = rs.GetRows() rsArray(0, 0)就表示记录集第一行的第一字段值 rsArray(1, 0)就表示记录集第一行的第二字段值 数组的数据是保存在内存中的,这就从根本上解决了每次显示记录还需向数据库请求的麻烦 参考:关于GetRows()的详细介绍和用法 GetRows 方法 将 Recordset 对象的多个记录恢复到数组中。 语法 array = recordset.GetRows( Rows, Start, Fields ) 返回值 返回二维数组。 参数 Rows 可选,长整型表达式,指定要检索记录数。默认值为 adGetRowsRest (-1)。 Start 可选,字符串或长整型,计算得到在 GetRows 操作开始处的记录的书签。也可使用下列 BookmarkEnum 值。常量 说明 AdBookmarkCurrent 从当前记录开始。 AdBookmarkFirst 从首记录开始。 AdBookmarkLast 从尾记录开始。 Fields 可选,变体型,代表单个字段名、顺序位置、字段名数组或顺序位置号。ADO 仅返回这些字段中的数据。 说明 使用 GetRows 方法可将记录从 Recordset 复制到二维数组中。第一个下标标识字段,第二个则标识记录号。当 GetRows 方法返回数据时数组变量将自动调整到正确大小。 如果不指定 Rows 参数的值,GetRows 方法将自动检索 Recordset 对象中的所有记录。如果请求的记录比可用记录多,则 GetRows 仅返回可用记录数。 如果 Recordset 对象支持书签,则可以通过传送该记录的 Bookmark 属性值,来指定 GetRows 方法将从哪个记录开始检索数据。 如要限制 GetRows 调用返回的字段,则可以在 Fields 参数中传送单个字段名/编号或者字段名/编号数组。 在调用 GetRows 后,下一个未读取的记录成为当前记录,或者如果没有更多的记录,则 EOF 属性设置为 True。

 

 

 

ADO也提供更有效率方法来取得数据。GetRows 方法传回一个二维的数组变量,每一行对应Recordset中的一笔记录,且每一列对应到记录中的字段。此方法的语法如下:
     varArray = rs.GetRows([Rows], [Start], [Fields])
返回值
     返回二维数组。
参数
     1、Rows     可选,长整型表达式,指定检索记录数目。默认值为 adGetRowsRest (-1)。
     2、Start     可选,字符串或长整型,将 GetRows 操作开始处的记录赋值给书签。也可使用下列 BookmarkEnum 值。
     常量 说明
     adBookmarkCurrent 从当前记录开始。
     adBookmarkFirst 从第一条记录开始。
     adBookmarkLast 从最后一条记录开始。
     3、Fields     可选。代表单个字段名、顺序位置、字段名数组或序号位置数的变体型。ADO 仅返回这些字段中的数据。
说明
     使用 GetRows 方法可将记录从 Recordset 复制到二维数组中。第一个下标标识字段,第二个则标识记录号。当 GetRows 方法返回数据时数组变量将自动调整到正确大小。
     如果不指定 Rows 参数的值,GetRows 方法将自动检索 Recordset 对象中的所有记录。如果请求的记录比可用记录多,则 GetRows 仅返回可用记录数。
     如果 Recordset 对象支持书签,则可以通过传送该记录的 Bookmark 属性值来指定 GetRows 方法应开始检索数据的位置。
     如要限制 GetRows 调用返回的字段,则可以在 Fields 参数中传送单个字段名/编号或者字段名/编号数组。
     在调用 GetRows 后,下一个未读取的记录成为当前记录;如果没有更多的记录,则 EOF 属性设置为 True。
rsArray = rs.GetRows()
rsArray(0, 0)就表示记录集第一行的第一字段值
rsArray(1, 0)就表示记录集第一行的第二字段值
例:
Dim values As Variant, fldIndex As Integer, recIndex As Integer
values = rs.GetRows(, , Array("LastName", "FirstName", "BirthDate"))
For recIndex = 0 To UBound(values, 2)
     For fldIndex = 0 To UBound(values)
         Print values(fldIndex, recIndex),
     Next
     Print
Next

 

 

rs.getrows的使用方法

这是在做项目的过程中学习到的,共享之。 大家可能经常会遇到这种情况:
sql="select * from table"
set rs=conn.execute(sql)
以上这两句执行完之后,如果使用response.write rs.recordcount,就会得到结果-1,但这个时候,记录集rs当中其实是有记录的。为了得到正确的记录总数,我们使用getrows.
sql="select * from table"
set rs=conn.execute (sql)
arrA=rs.getrows '将记录集放在一个二维数组中
response.write ubound(arrA,2)+1
就会得到记录集的记录总数
response.write ubound(arrA,1)+1
就会得到记录集的总列数
==========================================================
另外,还有一种获取记录总数的方法:
jls= conn.execute("Select count(*) From table").getstring
这时候,变量jls的值,便是记录总数了

如果你想读取一个doc文件中特定标题下的表格,你可以使用Apache POI库来解析和提取文档内容。以下是一个示例代码,用于读取doc文件中指定标题下的表格内容: ```java import org.apache.poi.xwpf.usermodel.*; import java.io.FileInputStream; import java.io.IOException; import java.util.Iterator; public class ReadDocTable { public static void main(String[] args) { String filePath = "path/to/your/document.docx"; String targetTitle = "资产负债表 (单位:千元)"; try (FileInputStream fis = new FileInputStream(filePath)) { XWPFDocument document = new XWPFDocument(fis); // 遍历段落 for (XWPFParagraph paragraph : document.getParagraphs()) { // 获取段落文本 String text = paragraph.getText(); // 判断段落是否是指定标题 if (text.equals(targetTitle)) { // 获取下一个元素 IBodyElement nextElement = getNextElement(paragraph); // 处理下一个元素,如果是表格则进行处理 if (nextElement instanceof XWPFTable) { XWPFTable table = (XWPFTable) nextElement; // 遍历表格行 for (XWPFTableRow row : table.getRows()) { // 遍历表格单元格 for (XWPFTableCell cell : row.getTableCells()) { // 读取单元格的文本内容 String cellText = cell.getText(); System.out.println(cellText); } } } break; // 找到指定标题后跳出循环 } } } catch (IOException e) { e.printStackTrace(); } } // 获取指定段落的下一个元素 private static IBodyElement getNextElement(XWPFParagraph paragraph) { Iterator<IBodyElement> iter = paragraph.getBody().getBodyElementsIterator(); while (iter.hasNext()) { IBodyElement element = iter.next(); if (element instanceof XWPFParagraph) { return element; } } return null; } } ``` 在上述代码中,你需要将 `"path/to/your/document.docx"` 替换为你实际的doc文件路径,`"资产负债表 (单位:千元)"` 替换为你想要读取的标题。 这个示例代码使用Apache POI库解析doc文件,并遍历文档中的段落。当找到指定标题后,获取下一个元素并判断是否是表格,如果是表格,则遍历表格行和单元格,读取单元格的文本内容并进行处理。 希望这个示例能满足你的需求!如果有任何问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值