ASP中Set ors=oConn.Execute()时获取记录数的方法
在ASP环境中,当我们使用`Set ors=oConn.Execute()`创建`RecordSet`对象后,有时会遇到通过`RecordSet.RecordCount`获取的记录数显示为-1的情况。这时,不妨试试使用`GetRows`方法来获取准确的记录数。
代码示例如下:
```asp
<%
Dim oConn, ors, aRows
Dim i, j
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("database/newasp.resx")
Set ors = oConn.Execute("Select TOP 5 SoftID, SoftName FROM NC_SoftList")
'此时通过ors.RecordCount获取的记录数可能为-1
Response.Write "尝试通过RecordCount获取记录数:" & ors.RecordCount & "
"
aRows = oRs.GetRows(-1) '使用GetRows获取所有记录,存入数组aRows中
If Not oRs.Eof Then
Response.Write "通过GetRows获取的记录数为:" & UBound(aRows, 2) + 1 & "
"
End If
For i = 0 To UBound(aRows, 2)
For j = 0 To UBound(aRows, 1)
Response.Write aRows(j, i) & ","
Next
Response.Write "
"
Next
Set ors = Nothing
oConn.Close()
Set oConn = Nothing
%>
```
在上述代码中,我们首先尝试使用`ors.RecordCount`获取记录数,但当它返回-1时,我们通过`GetRows`方法来获取所有记录并存入数组`aRows`中。接着,我们检查数组`aRows`是否为数组(即确认是否成功获取了记录),并通过`UBound`函数获取数组中的记录数。然后,我们遍历数组并输出每条记录的内容。通过这种方式,我们可以确保获取到准确的记录数并输出所有记录的内容。