Sql

Fermé
batista1300 Messages postés 49 Date d'inscription lundi 25 août 2008 Statut Membre Dernière intervention 21 octobre 2011 - 15 nov. 2009 à 00:21
batista1300 Messages postés 49 Date d'inscription lundi 25 août 2008 Statut Membre Dernière intervention 21 octobre 2011 - 15 nov. 2009 à 13:53
Bonjour,

J'ai un problème en sql.
un coureur pratique 1 ou plusieurs épreuves et une épreuve est pratiquer par 1 ou plusieurs coureurs
J'ai une table coureur contenant les informations du coureur ensuite une table pratiquer contenant les id du coureur et l'id de l'épreuve.
J'aimerais en cliquant sur une combobox (contenant l'id du coureur) insérer une épreuve au bon coureur.
j'aimerais en sql insérer un coureur a une épreuve en fonction de la combobox. Je récupère bien la valeur de la combobox il me manque la condition. Je programme en c#.

Voici une parti de mon code pour y voir plu clair:

private void cmdInsérer_Click(object sender, EventArgs e)
{
// la je récupère la l'id du coureur
string vNumLicence = cmbNumLicence.SelectedItem.ToString();
MessageBox.Show(vNumLicence);


les champs sont bons
// voici la requête
string reqEpreuve = "INSERT INTO EPREUVE(codeEpreuve, nomEpreuve) VALUES(codeEpreuveauto.nextval,'" + cmbNomEpreuve.Text + "') ";
MessageBox.Show(reqEpreuve);
MaCom.CommandText = reqEpreuve;
MaCom.ExecuteNonQuery();


Merci, je n'arrive plus.
Bien entendu je sais pas si je peux faire ça.
Merci à tous ceux qui répondront.

4 réponses

tarek_dotzero Messages postés 817 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 122
15 nov. 2009 à 01:58
Est ce que tu as une ou deux ComboBox?
Sinon, est ce que tu crée une nouvelle épreuve.

Un autre point:
string reqEpreuve = "INSERT INTO EPREUVE(codeEpreuve, nomEpreuve) VALUES(codeEpreuveauto.nextval,'" + cmbNomEpreuve.Text + "') ";


Pour le codeEpreuveauto.nextval

Est ce que c'est vraiment sa place et c'est la bonne formule (délimiteur de la chaîne à vérifier) ???
0
batista1300 Messages postés 49 Date d'inscription lundi 25 août 2008 Statut Membre Dernière intervention 21 octobre 2011 2
15 nov. 2009 à 02:34
Merci de m'avoir répondu.
L'insertion d'une nouvelle épreuve est faite par un autre module.
La combobox cmbNomEpreuve.Text récupère le nom de l'épreuve étant stocké dans la table épreuve.
En sélectionnant cette combobox je choisirais celle que je veux mettre.
Pour la syntaxe codeEpreuveauto.nextval est une séquence qui démarre a un.
J'ai constater une erreur, comme j'ai écrit plus haut l'insertion de l'épreuve est faite par un autre module or on a pas besoin de séquence dans ce insert mais de récupérer l'id de l'epreuve et bien entendu le nom de l'épreuve bien ensuite l'insérer.
J'espère avoir été clair sinon je t'enverrai plus d'information encore merci!
0
tarek_dotzero Messages postés 817 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 122
15 nov. 2009 à 04:04
Si je ne me trompe pas, tu utilise Access (les séquences et ses méthodes changent énormément d'un SGBD à un autre).
Mais, de toute façon, je pense que la séquence n'est plus nécessaire:
l'insertion d'une relation entre la table ÉPREUVE et la table COUREUR suppose l'existence des deux enregistrement, alors il faut que tu sois capable de récupérer l'ID du coureur et l'ID de l'épreuve, et la séquence n'est plus nécessaire.
0
batista1300 Messages postés 49 Date d'inscription lundi 25 août 2008 Statut Membre Dernière intervention 21 octobre 2011 2
15 nov. 2009 à 13:53
Bonjour,

J'utilise microsoft visual studio 2005, je programme en c#. Mon problème est basé sur ma requête sql. Pour récupérer le nom de l'épreuve dans la combobox est fait mais pouvoir l'insérer au bon coureur. Il faut garder les liens de tables dans le insert into. Et sa je ne sais pas comment faire.
L'information contenant l'id du coureur et l'id de l'épreuve est la table pratiquer.
0