来自OracleDataReader的行数

Pra*_*eep 4 .net odp.net rowcount

任何人都可以告诉我如何从OracleDataReader.net 2.0中查找行数吗?

Ale*_*lex 5

一个OracleDataReader对象表示一个只进,只读,内存中的结果集.与之不同的是DataSet, OracleDataReader对象保持连接并一次取出一行.

所以,它不知道会有多少行.如果使用数据适配器,则可以获取行数,因为它会获取行.

在您的情况下,您必须获取所有行(如果您只需要获取数据)以获取行计数:

OracleDataReader reader = cmd.ExecuteReader();
int rowCount = 0;
while (reader.Read())
{
    // your logic here
    rowCount++;
}
Run Code Online (Sandbox Code Playgroud)

但是,如果您不需要该数据,最好重新配置存储过程/查询以显式返回行计数.