Bonjour tout le monde.
Je suis étudiant en informatique et actuellement en stage.
Je dois faire une application permettant le suivie du cycle de vie de produits situé dans une infrastructure.
Ces produits sont amenés à être réparer suite à des pannes. Ces pannes sont détecter et ou réparer par des personnes internes à l'établissement (UTILISATEUR) ou par des personnes externes (INTERVENANT), les deux figurants dans une table PERSONNE.
En ce moment, je bute sur un problème qui est d'ajouter simultanément des données dans 2 tables.
J'ai ma table :
PERSONNE (id_pers, nom, prenom).
SOCIETE (id_soci, nom, adresse, telephone).
INTERVENANT, qui hérite de personne et qui appartient à une société (#id_pers, #id_soci, nom, prenom).
Sur ma page de gestion (là où j'ajoute des personnes), j'ai une dropdownlist qui me permets de choisir si cette personne est interne ou externe.
Comme la table INTERVENANT a besoin de l'id_pers et l'id_soci, j'ai deux requêtes SQL qui vont récuperer l'id et l'inserer dans la table INTERVENANT, cependant j'ai une erreur et je bloque dessus depuis pas mal d'heure.
Voici mes requêtes:
Ici l'ajout de personne dans PERSONNE (aucun soucie).
1 2 3 4
| //Requête pour ajouter dans la table PERSONNE une personne
SqlCommand cmdAddPersonne = new SqlCommand();
cmdAddPersonne.Connection = ConnectionToSql.c;
cmdAddPersonne.CommandText = "INSERT into PERSONNE(NOM, PRENOM) VALUES('" + txtBoxNom.Text + "', '" + txtBoxPrenom.Text + "')"; |
Là la récupération de l'id_soci en fonction du nom de société à laquelle appartient là personne.
cmdAddSocieteToIntervenant.CommandText = "INSERT into INTERVENANT(ID_SOCIETE) VALUES(' ') SELECT ID_SOCIETE FROM SOCIETE WHERE NOM_SO='" + DropDownListSociete.Text + "'";
C'est là que j'ai mon erreur.
Informations supplémentaires : L'instruction INSERT est en conflit avec la contrainte FOREIGN KEY "FK_INTERVENANT_SOCIETE". Le conflit s'est produit dans la base de données "bd_parc_info", table "dbo.SOCIETE", column 'ID_SOCIETE'.
Et la deuxième qui va récupérer l'id_pers dans PERSONNE et l'ajouter dans INTERVENANT avec nom et prénom.
cmdAddPersonneToIntervenant.CommandText = "INSERT into INTERVENANT(ID_PERSONNE, NOM, PRENOM) VALUES(' ', '" + txtBoxNom.Text + "', '" + txtBoxPrenom.Text + "') SELECT ID_PERSONNE FROM PERSONNE WHERE NOM='" + txtBoxNom.Text + "' AND PRENOM='" + txtBoxPrenom.Text + "'";
Je travail sur VisualStudio 2014 avec SQL Server 2012.
J’espère avoir été clair et je vous remercie.
Partager