Quelqu'un peut-il me dire comment trouver le nombre de lignes de OracleDataReader
dans .net 2.0?Nombre de lignes d'OracleDataReader
Répondre
Un objet
OracleDataReader
représente un avant uniquement, en lecture seule, en mémoire ensemble de résultats. Contrairement àDataSet
, l'objetOracleDataReader
reste connecté et récupère une ligne à l'heure .
Donc, il ne sait pas combien de lignes il y aura. Si vous utilisez l'adaptateur de données , vous pourrez obtenir un nombre de lignes car il récupère les lignes .
Dans votre cas, vous devez chercher toutes les lignes (si vous avez besoin pour récupérer les données uniquement) pour obtenir le nombre de lignes:
OracleDataReader reader = cmd.ExecuteReader();
int rowCount = 0;
while (reader.Read())
{
// your logic here
rowCount++;
}
Mais si vous n'avez pas besoin de ces données, il serait mieux reformuler votre procédure stockée/requête pour retourner le nombre de lignes explicitement.
OracleDataReader objReader = cmd.ExecuteReader();
while(cmdReader.Read()) nRegisters++; objReader = cmd.ExecuteReader();
Vous devriez réinitialiser que objReader parce que les séjours « pointeur » dans la dernière position lorsque vous souhaitez lire à nouveau ... et il n'y a pas une option pour revenir à la première position du curseur.
si vous avez besoin du numéro de registre ce que vous vous devez réaliser un COUNT (*) dans la sélection au lieu de compter chaque ligne, vous devez être pratique au sujet de votre code:
comme si vous avez besoin des numéros de citoyens d'une ville spécifique:
BEGIN
OPEN REF_CUR FOR
SELECT COUNT(*) AS nRegisters,
City AS Var1,
Country AS Var2
FROM Citizens
WHERE City = 'City';
RETURN;
END;