fonction recursive - C#/.NET managed - Programmation
Marsh Posté le 25-08-2005 à 20:45:54
kausa a écrit : j utilise une fonction recursive mais ça marche pas |
c'est pas bien bô comme fonction recursive ça
Code :
|
C'est deja un peu plus en forme
petites questions:
Petits conseils:
Marsh Posté le 26-08-2005 à 09:45:38
ouch
coté bd c est tous bon pas de souci faut pas se focaliser sur ça
le pb vient de la fonction récursive comme je l'ai déja dit elle revient pas en arrière?
j ai trouve une partie du pb le BDR je l 'ai déclare en variable global alors qu'il ne faut pas mais quand je le declare au niveau de la fonction il me genere l exception comme quoi le BDR il c est fermé
voila si vous avez pas tres bien compris dites le moi et je vais essayer d etre plus claire
Marsh Posté le 01-09-2005 à 09:31:59
BDR (on dirait un IDataReader) n'est pas déclaré en local ? a chaque passage dans ta méthode, le BDR de l'appelant est écrasé ?
si c'est le cas, ton while(BDR.Read()) sort directement apres la 1ere itération a chaque fois, ce qui explique que la méthode retourne directement a chaque fois.
sinon, si tu travailles avec SQLServer par exemple, il m'eusse semblé (corrigez moi si je me trompe) que seul un DataReader pouvait etre ouvert par connexion.
Marsh Posté le 25-08-2005 à 17:02:20
j utilise une fonction recursive mais ça marche pas
au debut la requete me renvoie 3 valeurs donc la fontion va s executer 3 fois mais ce n'est pas le cas elle ne s'execute que sur la premiere valeur et ainsi de suite tout au long de l execution
en somme elle ne fait pas de marche arrière pour reprendre la suite de la fonction
public void WhereUsed(string pid){
string ma_requete;
listpid+="\n"+pid;
if(pid=="" ){
MessageBox.Show("vide" );
}else{
gestionbd.InitConnection();
ma_requete="select ParentPartid From partstructure where ChildPartId='"+pid+"'";
BDR=gestionbd.ExecuterRequete(ma_requete);
[#ff2a00]while(BDR.Read()){
parentpid=cascading.TestBDNull(BDR.GetValue(0)); WhereUsed(parentpid);
}}
}[/#5500aa]