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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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#
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
cmd.parameters["mois_paie"].value
je trouve des valeurs