Probleme de boucle sur tableau d'objects...

sphaxslayer Messages postés 216 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 17 septembre 2008 - 7 juin 2005 à 10:04
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 - 10 juin 2005 à 10:56
B'jour b'jour !
alors voilà j'ai un souci...j'ai un tableau d'object à 2 dimensions qui reçoit le résultat d'une fonction exécutant une requête SQL...mon prbleme c'est que ma requête doit être dans un boucle mais sauvée dans sa totalité dans un tableau, la voici :

SELECT DQ.MSG_ID, DQ.USER_DATA_” + i + “,


ENQ_TIME, FINAL_TIME, MSG_STATE,


FAILURE_CODE, FAILURE_COMMENT


FROM DXCNT_QUEUE DQ


WHERE DQ.QUEUE = // sélectionnée depuis une listeBox


AND DQ.USER_DATA_” + i + “ IS NOT NULL


AND DQ.MSG_STATE = <code_statut> // variable initialisée au préalable


ORDER BY MSG_ID

vous remarquez certainement le "i" dans la requête: en fait, en abse, il y'a 10 champs USER_DATA_i, avec i de 0 à 9...j'ai donc voulu mettre cette requête dans une boucle...Donc, mon tableau reçoit le résultat de cette requete...sauf qu'évidemment, faire

for (int i=0; i<10; i++)
Result = connex.getquery("SELECT... ...")

ça va m'écraser Result à chaque tour....
j'ai donc pensé à faire

Result = Result + connex.getquery("SELECT ... ...")

mais Visual Studio me dit qu'on ne peut pas applioquer l'opérateur + sur un tableau d'objets....

donc voilà si quelqu'un pouvait m'aider à résoudre ça....merciii :)

"Un seul Être vous manque, et tout est dépeuplé..."

67 réponses

sphaxslayer Messages postés 216 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 17 septembre 2008
8 juin 2005 à 13:35
Ok merci, en fait la derniere phrase se résolvait par les 2 précédentes, et tes réponses m'éclairent donc c nickel :) par contre il aime pas les <Object[,]> c'est les <> qui l'défrisent ... c'est normal...? :$

"Un seul Être vous manque, et tout est dépeuplé..."
0
cs_yoannd Messages postés 305 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 août 2011 7
8 juin 2005 à 13:40
Hmmmmmm, en effet, je ne me rappèle plus si tu peux faire ce genre de
trucs avec le framework 1... Si tu déclares simplement un
<Object>, ça marche ? Sinon, faudra passer par un Array, ou
regarder comment fonctionnent les collections :)
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
8 juin 2005 à 13:48
Les generics c'est en 2.0 :(

Humm, une collection de Array !? Ce sera peut etre plus simple a utiliser mais en interne ca ne sera rien d'autre qu'un tableau de tableau.. : )
0
cs_yoannd Messages postés 305 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 août 2011 7
8 juin 2005 à 13:49
Exact
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sphaxslayer Messages postés 216 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 17 septembre 2008
8 juin 2005 à 14:14
Bien...j'vous crois lol mais euh ce serait possible d'avoir un exemple meme bref si ca vous saoule...? thanks les gens en tous cas !

"Un seul Être vous manque, et tout est dépeuplé..."
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
8 juin 2005 à 14:31
L'exemple je te l'ai deja donne plus haut.. Si tu sais utiliser un tableau avec des classes.. et bien tu sais utiliser un tableau avec des tableaux.. car en C# un tableau c'est une classe Array.. Pour les collections tu utilises la classe ArrayList et sa methode Add.. Sinon TheSaib t'avais propose les DataSet / DataTables..
0
sphaxslayer Messages postés 216 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 17 septembre 2008
8 juin 2005 à 14:35
Ah okkk, bon bah j'vais voir alors, j'pensais que pour déclarer une collection, fallait l'faire comme on déclare un tabbleau quoi...enfin bref...et pour le conseil de TheSaïb j'avais vu mais jvois pas du tout comment faire et encore moins dans mon cas ! :s j'vous tiens au courant...

"Un seul Être vous manque, et tout est dépeuplé..."
0
sphaxslayer Messages postés 216 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 17 septembre 2008
8 juin 2005 à 15:04
Bon, alors voilà ce que j'ai fait sachant que DixUserData est une string :


for (
int i=0; i<10; i++)


{


Resultats.Add(connex.getQueryResult("SELECT DISTINCT ..."));


DixUserData = DixUserData + Resultats[6].ToString();


}

évidemment, ca marche pas: Resultats[6] est hors limites....je comprends pas comment faire pour ajouter les tableaux retourner par getQueryResult et accéder au colonnes de ces tableaux à chaque fois....:s je sais j'suis uine croute mais bon j'découvre

"Un seul Être vous manque, et tout est dépeuplé..."
0
sphaxslayer Messages postés 216 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 17 septembre 2008
8 juin 2005 à 15:08
A moins que faire dans le for:

Result = Resultats[i];
DixUserData = DixUserData + Result[6].toString()...? ça vous parait pas mal ca ?

"Un seul Être vous manque, et tout est dépeuplé..."
0
sphaxslayer Messages postés 216 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 17 septembre 2008
8 juin 2005 à 15:18
bahen fait ca marche pas...lol
j'ai finalement reprs mon ancien modele a savoir :
Result = connex....
ensuite j'ajoute a la collection
Resultats.add(Result)
tout ca dans le for...

et de là bah je sais pas coment accéder au contenu de la derniere case de chaque ligne de Result, pour chacun des Result...(cette case devrait contenir les fameux USER_DATA_i que j'aimerais concaténer en une seule string...)

"Un seul Être vous manque, et tout est dépeuplé..."
0
cs_yoannd Messages postés 305 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 août 2011 7
8 juin 2005 à 15:23
ben c'est normal que ca, dès la première exécution, tu as un problème. Au premier tour de boucle, ton tableau a une taille de 1.



Tu devrais plutot faire comme ca :

for (
int i=0; i<10; i++)


{

Resultats.Add(connex.getQueryResult("SELECT DISTINCT ..."));

}

for(int i; i < Resultats.lenght; i++){


DixUserData = DixUserData + Resultats[6].ToString();


}
0
cs_yoannd Messages postés 305 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 août 2011 7
8 juin 2005 à 15:26
Ha mais attends, il y a un autre truc, ca peut pas marcher tout ça :



for (
int i=0; i<10; i++)


{

Resultats.Add(connex.getQueryResult("SELECT DISTINCT ..."));

}

for(int i; i < Resultats.lenght; i++){

DixUserData = DixUserData + Resultats[i].ToString();


}




Dans la seconde boucle, tu essayes de convertir un tableau d'objets en string... ça peut pas marcher.



tu dois plutot faire

for(int i; i < Resultats.lenght; i++){


Object[,] Result =
Resultats[i]
;


DixUserData = DixUserData +
Result[JeSaisPasQuelleLigne, JeSaisPasQuelleColonne]
.ToString();



}
0
sphaxslayer Messages postés 216 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 17 septembre 2008
8 juin 2005 à 15:36
ui, merci... maintenant t'es d'accord que Resultats[6] c'est un tableau Result[,]...Or, chaque tableau Result contient les colonnes MSG_ID, ENQ_TIME, FINAL_TIME, MSG_STATE, FAILURE_CODE, FAILURE_COMMENT et USER_DATA_i, et chaque ligne contient un résultat de la requête...

en vérité, il me faut récupérer chaque MSG_ID, etc... une seule fois dans une string, PUIS récupérer chaque champs USER_DATA_i correspondant dans une autre et concaténer le tout...mais le probleme est le meme :'(

dans la boucle sur i, le tableau ressemble à ca :

msg_id | enq_time | final_time | msg_state | failure_code | failure_comment | user_data_0
msg_id | enq_time | final_time | msg_state | failure_code | failure_comment | user_data_1
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
msg_id | enq_time | final_time | msg_state | failure_code | failure_comment | user_data_9

msg_id | enq_time | final_time | msg_state | failure_code | failure_comment | user_data_0
msg_id | enq_time | final_time | msg_state | failure_code | failure_comment | user_data_1
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
msg_id | enq_time | final_time | msg_state | failure_code | failure_comment | user_data_9

etc... chaque couleur représentant les mêmes valeurs sauf pour les user_data_i évidemment
si c'est pas l'cas euh bah j'ai pas compris alors..mais normalement ça c'est c'qui s'passe...(j'espere...)
et donc Resultats[] est un tableau de ces tableaux....et j'dois donc accéder aux dernieres cases (chaque ligne, la derniere colonne) pour récupérer le contenu...AAAHHHH au s'cours...j'm'auto-perds...:s

"Un seul Être vous manque, et tout est dépeuplé..."
0
sphaxslayer Messages postés 216 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 17 septembre 2008
8 juin 2005 à 15:38
ah, j'avais pas vu que t'avais re-répondu...:s
bah euh j'attends que tu me dises ce que tu penses de mon précédent post...sachant que le tien que j'n'avais pas vu me parait pas mal, mais c justement le probleme que j'pose dans mon précédent message qui se présente...je sais pas si tu as bien compris ou pas, ca doit etre un peu abstrai quand t pas dedans :s

"Un seul Être vous manque, et tout est dépeuplé..."
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
8 juin 2005 à 15:39
Ah bha ca.. les tableau de tableau a deux dimensions ca complique... lol !!
0
sphaxslayer Messages postés 216 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 17 septembre 2008
8 juin 2005 à 15:41
lol tu m'étonnes....désolé de t'bouffer ton temps, c'est cool de m'aider, z'etes sympa les mecs ;) :$ j'vais essayer avec le truc d'avant, ce que t'as mis, j'tiens p'tete le bon bout...fin j'espere :s

"Un seul Être vous manque, et tout est dépeuplé..."
0
sphaxslayer Messages postés 216 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 17 septembre 2008
8 juin 2005 à 15:43
à mince, c'est yoannd qui m'avait filé le truc désolé, j'ai fait une erreur de lecturage
faut dire que le post est 'achement long quand même ! j'en ai pas vu des comme ça souvent ici.....on piste facilement les boulets tu m'diras... lol

"Un seul Être vous manque, et tout est dépeuplé..."
0
cs_yoannd Messages postés 305 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 août 2011 7
8 juin 2005 à 15:46
lol, c'est vrai que le temps de raffraichissement de la page s'en ressent
0
sphaxslayer Messages postés 216 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 17 septembre 2008
8 juin 2005 à 15:49
héhé ouais !
précision pour les futurs boulets qui seront donc dans mon cas: ( lol )
dans le post de yoannd, qui s'auto-corrige de son précédent, dans la deuxième boucle for il faut mettre
for (int i=0; i<Resultats.Count;i++) {...}
puisqu'il s'agit ici d'un ArrayList...

voilà j'ai fait mon lourd, c'est bon, vous pouvez m'jeter vos cailloux lol

"Un seul Être vous manque, et tout est dépeuplé..."
0
sphaxslayer Messages postés 216 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 17 septembre 2008
8 juin 2005 à 15:50
héhé ouais !
précision pour les futurs boulets qui seront donc dans mon cas: ( lol )
dans le post de yoannd, qui s'auto-corrige de son précédent, dans la deuxième boucle for il faut mettre
for (int i=0; i<Resultats.Count;i++) {...}
puisqu'il s'agit ici d'un ArrayList...

voilà j'ai fait mon lourd, c'est bon, vous pouvez m'jeter vos cailloux lol

"Un seul Être vous manque, et tout est dépeuplé..."
0
Rejoignez-nous