Can any one tell me how to find row count from OracleDataReader
in .net 2.0?
Use the COUNT aggregate function to count the number of rows in a table. This function takes the name of the column as its argument (e.g., id ) and returns the number of rows for this particular column in the table (e.g., 5).
@@RowCount is a system variable which will have the value of last executed query's number of rows affected. It is used after any type of query such as 'insert', 'Update', 'Delete'. So, @@RowCount is used to check number of rows affected only after a query execution.
Row count is the number of available rows of seating in a vehicle.
An
OracleDataReader
object represents a forward-only, read-only, in-memory result set. Unlike theDataSet
, theOracleDataReader
object stays connected and fetches one row at a time.
So, it does not know how many rows there will be. If you use the data adapter, then you will be able to get a row count since it fetches the rows.
In your case you have to fetch all the rows (if you need to fetch the data only) to get the row count:
OracleDataReader reader = cmd.ExecuteReader();
int rowCount = 0;
while (reader.Read())
{
// your logic here
rowCount++;
}
But if you don't need that data, it would be better to reformulate your stored procedure/query to return row count explicitly.
OracleDataReader objReader = cmd.ExecuteReader();
while(cmdReader.Read()) nRegisters++; objReader = cmd.ExecuteReader();
You should re-initialize that objReader because that "pointer" stays in the last position when you want to read it again... and there's no an option to return to the first position of the cursor.
if you need the number of register what you get you should realize a COUNT(*) in the select instead of counting every row, you must be practical about your code:
like if you need the numbers of citizens of a specific city:
BEGIN
OPEN REF_CUR FOR
SELECT COUNT(*) AS nRegisters,
City AS Var1,
Country AS Var2
FROM Citizens
WHERE City = 'City';
RETURN;
END;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With