Resultat de requete sql incorrecte

Maiku Messages postés 190 Date d'inscription dimanche 10 avril 2005 Statut Membre Dernière intervention 4 juillet 2007 - 27 sept. 2005 à 19:26
Maiku Messages postés 190 Date d'inscription dimanche 10 avril 2005 Statut Membre Dernière intervention 4 juillet 2007 - 29 sept. 2005 à 22:12
Bonjour


Je developpe actuellement un logiciel de cuisine en relation avec une base de données acces comportant 4 tables : Famille,Ingredients,Recettes,Composer


Sur la première form de mon programme, au load de celle ci, s'effectue la connexion entre cette base de données et visual studio c#, lors de ce load, une combobox appellée Famille recupere toutes les familles de la table famille, lors d'un click sur l'une des familles, la combo est remplacée par une combo regroupant l'ensemble des ingredients faisant partie de cette famille à l'aide d'une requete sql, enfin lors de la selection d'un ingredients, la liste de recettes dans lequels il apparait s'affiche ds une combobox.


Mon problème se situe entre la selection d'un ingredient et l'affichage des recettes qu'il le concerne, j'ai teste la requete sous access, elle est correcte, et me renvoi 1 resultat comme prevu, mais lorsque je l'effectue sous c#, elle me renvoie deux resultats, puis fait planté mon programme avec une erreure.

Quelqu'un peut il me dire comment ca se fait ?
Si vous desirez le code, precisez le moi, je l'afficherai.

Merci d'Avance
Maiku

4 réponses

NetJoao Messages postés 22 Date d'inscription vendredi 3 juin 2005 Statut Membre Dernière intervention 29 septembre 2005
27 sept. 2005 à 21:23
Montre moi ton code
0
Maiku Messages postés 190 Date d'inscription dimanche 10 avril 2005 Statut Membre Dernière intervention 4 juillet 2007
27 sept. 2005 à 21:31
ReBonjour

Voici le code concernée par le probleme, il s'agit du code la combobox Ingredients lors de l'evenement SelectIndexChanged, je precise que champ, result et result2 sont des ArrayList, et que bd.Connection est une methode de la Classe BasedeDonnee que j'ai ajouté à mon programme :


champ.Add(Ingredients.SelectedItem);



foreach(
string nomi
in champ)


{



//Je recupere le coderecette des recettes qui utilise le nom de l'ingredient selectionné dans leur recetteresult bd.Connection("Select CodeRecette From Ingrédients, Famille,Composer" + " where Famille.RefF Ingrédients.RefF and Ingrédients.RefI = Composer.RefI and Ingrédients.NomI ='"+nomi+"'");



int number = champ.Count;


MessageBox.Show("Il y a :" +number+"resultat");


}



if(result.Count == 0)


{


ResultR.Text="Aucune Recette Trouvée";


}


champ.Clear();



foreach(
string coderec
in result)


{



int num =
int.Parse(coderec);


MessageBox.Show("Num:"+num);


result2 = bd.Connection("Select NomRecette From Recettes"+" where CodeRecette="+num);


MessageBox.Show("Select NomRecette From Recettes"+" where CodeRecette="+num);


MessageBox.Show("Il y a"+result2.Count+"resultats");


}

Merci d'Avance
Maiku
0
NetJoao Messages postés 22 Date d'inscription vendredi 3 juin 2005 Statut Membre Dernière intervention 29 septembre 2005
29 sept. 2005 à 20:27
Salut,
J'ai étudié ton code puis fais un test sur une appli console.
Regarde, test et tiens moi au courant, je pense que c'est un début de ta solution.


//ArrayList


ArrayList champ=
new ArrayList();


champ.Add("Farine");


champ.Add("Oeufs");



for(
int i=0;i<champ.Count;++i)


{


//Remplace ici ta requête SQL

Resul="SELECT ...FROM...WHERE Ingrédients.NomI ='"+(string)champ[i]+"'

if((
string)champ[i]=="Farine")


{


Console.WriteLine("Champ = {0}",champ[i]);


}


}

Bonne prog.
NetJoao
0
Maiku Messages postés 190 Date d'inscription dimanche 10 avril 2005 Statut Membre Dernière intervention 4 juillet 2007
29 sept. 2005 à 22:12
Bonjour

J'ai testé ton code, mais il ya certaine ligne que je ne comprend pas :

Je n'arrive à intepretrer ces lignes même si elle semble simple :

if((string)champ[i]=="Farine")


{


Console.WriteLine("Champ = {0}",champ[i]);


}

Mais je ne vois pas trop le rapport entre ton bout de code et mon problème, car ce bout de code concerne la requete a partir de l'ingredient selectionné, tandis que mon programme plante juste apres c'est a dire qu'il me dit bien voila j'ai selectionné tel legume, ce qui me fait un resultat de coderecette(enfin pour le moment car je n'ai rentré que 3 recettes ds la base de données, une pour un ingredient different), mais lorsque je lui demande de m'afficher le nom de recette qui correspond au coderecette recuperée, il dit qu'il y a 2 resultat pour un seul coderecette et il fait planter le programme au niveau du foreach(le deuxieme), ce qui est logique.

Maiku
0
Rejoignez-nous