Requetes dans plusieurs tables (delete + select)

Résolu
cs_kakol Messages postés 180 Date d'inscription mardi 21 décembre 2004 Statut Membre Dernière intervention 12 juin 2008 - 26 juil. 2005 à 19:03
cs_kakol Messages postés 180 Date d'inscription mardi 21 décembre 2004 Statut Membre Dernière intervention 12 juin 2008 - 29 juil. 2005 à 15:56
Bonjour,

J'ai 2 tables AP et Positions.
Quand je selectionne une ligne dans le datagrid de la table AP et que je clic sur un bouton delete, j'ai besoin de supprimer un enregistrement de la table Position.
Pour cela je dois recuperer le champ AP_ID qui correspond a celui clique dans la table AP, mais j'ai un probleme dans ma requete sql. La voici, ca sera surement plus explicite :
string query "delete FROM Positions where AP_ID like (select AP_ID from AP where id " + cellvalue1.Replace("'","''") + ")";

Cela me revoie l'erreur suivante : Invalid Memo, OLE, or Hypelink Object in subquery 'AP_ID'.

Je dois peut etre utiliser des jointures? j'ai regarde sur un tutoriel car je ne sais pas du tout comment les utiliser mais je n'ai pas reussi a m'en servir pour ma requete (toujours novice en c# !).

Quelqu'un pourrait-il m'eclairer svp?
merci

*** Kakol ***

6 réponses

SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
27 juil. 2005 à 08:46
Ton problème, c'est du SQL, et pas du c#.

//Si AP_ID est une chaîne de charactères :
string query = "delete FROM Positions where AP_ID like " + cellvalue1.Replace("'","''") + ")";

//Si AP_ID est un entier:string query "delete FROM Positions where AP_ID " + int.Parse(cellvalue1) + ")";

Amicalement, SharpMao
3
cs_kakol Messages postés 180 Date d'inscription mardi 21 décembre 2004 Statut Membre Dernière intervention 12 juin 2008
27 juil. 2005 à 16:52
Oui c'etait plus un probleme de sql c'est sur, j'aurais du mettre novice en c# et sql lol.
Finalement je me suis debrouillee autrement mais je te remercie de m'avoir repondu.
Bonne continuation.

*** Kakol ***
0
SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
28 juil. 2005 à 10:41
Si tu as une solution intéressante, poste-la, afin d'en faire profiter tout le monde.

Amicalement, SharpMao
0
cs_kakol Messages postés 180 Date d'inscription mardi 21 décembre 2004 Statut Membre Dernière intervention 12 juin 2008
28 juil. 2005 à 17:18
Je me suis tout compte fait rabattue sur ta solution car la mienne etait un peu tiree par les cheveux alors que la en 2 lignes c'est fait car le champ AP_ID est le meme dans les 2 tables :
string cellvalue1=this.dataGrid1[iRownr,1].ToString(); //recup de la valeur de la cellulestring query "delete FROM Positions where AP_ID '"+cellvalue1.Replace("'","''")+"'";

merci beaucoup.

*** Kakol ***
0

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

Posez votre question
SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
29 juil. 2005 à 08:09
Hello,
Juste un détail, avoir des clefs et faire des jointure sur des chaînes de charactères, c'est pas terible question efficacité. Il vaut mieux (à mon avis) rajouter une clef de type numérique. Ta solution peut marcher avec de petites tables, mais si tu commences à avoir de grandes tables, la différence va se sentir.

Amicalement, SharpMao
0
cs_kakol Messages postés 180 Date d'inscription mardi 21 décembre 2004 Statut Membre Dernière intervention 12 juin 2008
29 juil. 2005 à 15:56
ok ben merci pour ton conseil et pour ton aide je vais voir ce que je peux faire.

*** Kakol ***
0
Rejoignez-nous