bonsoir,
j'ai une procédure stocké qui me retourne plusieurs lignes .cette^procédure a deux paramètres en entrés et 3 pramètres en sorties
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| (CLEPERS_Paie IN PAIE.CLEPERS%TYPE,CLERUBRIQUE_Paie in DETAILPAIE.CLERUBRIQUE%TYPE,
Mois_Paie OUT Paie.Paie_mois%TYPE, MoisEffet_Paie OUT Paie.Paie_MoisEffet%TYPE,
Montant_Paie OUT Detailpaie.Detailpaie_Montant%TYPE)
IS
cursor lstDetailrub is SELECT
PAIE.PAIE_MOIS,PAIE.PAIE_MOISEFFET,detailpaie_montant
FROM detailpaie left join paie on detailpaie.clepaie=paie.clepaie
where detailpaie.clerubrique=CLERUBRIQUE_Paie and paie.clepers=CLEPERS_Paie;
BEGIN
open lstDetailrub;
loop
FETCH lstDetailrub INTO Mois_Paie,MoisEffet_Paie,Montant_Paie;
EXIT WHEN lstDetailrub%NOTFOUND;
End loop;
close lstDetailrub;
END RH_getdetailpaiebyrub; |
j'ai testé la procédure normakllement y'a pas de souci
le problème c'est au niveau du code c# a chaque fois que je l'exécute le data reader est toujours null voici mon code en c#
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| OracleCommand cmd = new OracleCommand("RH_GETDETAILPAIEBYRUB", Singleton.Instance.GetConnexion());
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add (new OracleParameter("CLEPERS_Paie",OracleType.Number)).Value = clepers;
cmd.Parameters.Add(new OracleParameter("CLERUBRIQUE_Paie", OracleType.Number)).Value = clerubrique;
cmd.Parameters.Add(new OracleParameter("Mois_Paie", OracleType.DateTime)).Direction = ParameterDirection.Output;
cmd.Parameters.Add(new OracleParameter("MoisEffet_Paie", OracleType.DateTime)).Direction = ParameterDirection.Output;
cmd.Parameters.Add(new OracleParameter("Montant_Paie", OracleType.Number)).Direction=ParameterDirection.Output ;
OracleDataReader reader = null;
DetailRubrique detailRubrique=new DetailRubrique();
List<DetailRubrique> listeDetailRub =new List<DetailRubrique>();
try
{
reader = cmd.ExecuteReader();
reader.Read();
if (reader.HasRows)
{
while (reader.Read())
{
DetailRubrique detailRub = new DetailRubrique();
detailRub.Mois =DateTime.Parse(reader.GetValue(0).ToString()).Date;
detailRub.MoisEffet = DateTime.Parse(reader.GetValue(1).ToString()).Date;
detailRub.MontantRubrique = float.Parse(reader.GetValue(2).ToString());
listeDetailRub.Add(detailRub);
}
}
} |
j'i tt essayé je sais pas pourquoi le datareader et tjrs null avec une requette
sachant que si je fait
cmd.parameters["mois_paie"].value
je trouve des valeurs
Partager