Maiku
Messages postés190Date d'inscriptiondimanche 10 avril 2005StatutMembreDernière intervention 4 juillet 2007
-
8 oct. 2005 à 20:19
MorpionMx
Messages postés3466Date d'inscriptionlundi 16 octobre 2000StatutMembreDernière intervention30 octobre 2008
-
9 oct. 2005 à 12:52
Bonjour
Je developpe actuellement un logiciel de cuisine en relation avec une base de données access 2000, je l'ai quasiment terminé à l'exception d'une requete sql qui refuse de marcher, il s'agit d'une requete de suppression DELETE , voici le code concernés :
Détails : Recettes.Text est une combobox qui contient la recette selectionnée par l'utilisateur, ce bout de code sert a supprimer une recette qui est consultée, result est un tableau ArrayList dont je me sert pour traiter les resultats de mes requetes sql, Connection est une méthode que j'ai declarée dans une bibliothèque de classe (un fichier dll si vous preferez et dont je peut me servir pour n'importe quel requete).
if( this.Recettes.Text == "")
{
MessageBox.Show("Vous ne pouvez supprimer une recette sans l'avoir selectionée et consultée");
}
else
{
string recettesup = this.Recettes.Text;
this.Recettes.Text = "";
bd.Connection("Delete From Recettes " + " where NomRecette='"+recettesup+"'");
MessageBox.Show("Une Si Belle Recette T_T, j'espère que tu m'en proposera des meilleurs ^^ ");
}
J'espere que qq pourra me dire pourquoi la requete ne fonctionne pas T_T
Merci d'avance
Maiku
Maiku
Messages postés190Date d'inscriptiondimanche 10 avril 2005StatutMembreDernière intervention 4 juillet 2007 8 oct. 2005 à 22:52
Alors je suis en train de règler l'erreur:
en fait l'erreur logique le message m'a dit qu'il ne pouvait supprimer la ligne de la table car le coderecette de cette table est repris dans une table composer.
Maintant il s'agit de faire un delete supplémentaire et de voir s'il acceptera les 2.
Maiku
Messages postés190Date d'inscriptiondimanche 10 avril 2005StatutMembreDernière intervention 4 juillet 2007 8 oct. 2005 à 23:01
Alors mon code a un petit peu changé, en raison de mes tables : j'ai 4 tables en tout :
Famille, Ingrédients,Recettes,Composer
Le MLD si vous voulez ca donne a peu pres ça :
Famille(RefF,NomF)
Ingrédients(RefI,NomI,#RefF)
Recettes(CodeRecette,NomRecette,Details)
Composer(#CodeRecette,#RefI)
Le code modifié donne ceci :
if ( this.Recettes.Text == "")
{
MessageBox.Show("Vous ne pouvez supprimer une recette sans l'avoir selectionée et consultée");
}
else
{
MessageBox.Show("Une Si Belle Recette T_T, j'espère que tu m'en proposera des meilleurs ^^ ");
string recettesup = this.Recettes.Text;
this.Recettes.Text = "";
try
{
this.champ = bd.Connection("Select CodeRecette From Recettes" + " where NomRecette='"+recettesup+"'");
int result = int.Parse(this.champ[0].ToString());
MessageBox.Show("result :"+result);
//Cette Requete s'effectue bien, il supprime bien la ligne concernée de la table composer
bd.Connection("Delete From Composer " + " where CodeRecette="+result);
//Cette requete plante : le message dit qu'il ne peut supprimer la ligne car il y a des enregistrement connexes dans la table composer
bd.Connection("Delete From Recettes " + " where CodeRecette="+result);
cispo
Messages postés103Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention10 septembre 20073 9 oct. 2005 à 11:03
Il est normal que ta requete SQL ne fonctionne pas si la ligne que tu veux supprimer contient des enregistrements connexes.
Tu dois tout d'abord supprimer les enregistrements qui dépendent de l'enregistrement que tu souhaites supprimer.
Si tu prends l'exemple d'un forum, tu ne peux pas supprimer un
utilisateur avant d'avoir supprimer tous ses messages, sinon à quoi ses
messages feraient-ils référence dans la base de données ?
Maiku
Messages postés190Date d'inscriptiondimanche 10 avril 2005StatutMembreDernière intervention 4 juillet 2007 9 oct. 2005 à 12:20
Hello Mx
Désoler pour moi le reveil c'est a partir de 12h.
Alors pour te repondre : je ne peux supprimer les relations car j'ai pas de mal de jointures avec plusieurs de mes requetes.
Quand a ta deuxieme solution : eh bien ca marche nikel^^.
Je t'en remercie d'ailleurs.
Mais ca veut dire koi supprimer en cascade les enregistrements correspondants , parce que moi et le français ca fait deux, qu'est ce que ca fait concretement ?
Maiku
Messages postés190Date d'inscriptiondimanche 10 avril 2005StatutMembreDernière intervention 4 juillet 2007 9 oct. 2005 à 12:27
Merci de tes explications , maintenant j'ai tout compris.
Grâce à toi ,j'ai resolu mon problème, il ne me reste qu'a generer un document word pour imprimer une recette, et mon logicile sera terminée.
Encore Merci Mx