Précédent   Forum du club des développeurs et IT Pro > Dotnet > Accès aux données > ADO.NET
ADO.NET Forum d'entraide sur le développement avec les services d'accès aux données disponibles avec ADO.NET.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 13/03/2012, 04h06   #1
beaudelaire
Invité de passage
 
Inscription : janvier 2011
Messages : 71
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 71
Points : 2
Points : 2
Par défaut requête d'insertion dans la BD

Bonjour!
j'ai une BD avec les tables Clients(num_cli, nom, prenom adresse) et commandes(num_cde, date_cde, remise, etat_cde, num_cli). j'aimerai entrer via un formulaire les infos dans la table commande mais je ne sais pas trop comment écrire la requête d'insertion car num_cli est clé étrangère dans la table commande. Pourtant il me faut bien lié le client à la commande. Quelqu'un a-t-il une idée de la requête?
beaudelaire est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2012, 09h22   #2
StringBuilder
Membre Expert
 
Homme Sylvain Devidal
Chef de projets Générix
Inscription : février 2010
Messages : 1 517
Détails du profil
Informations personnelles :
Nom : Homme Sylvain Devidal
Âge : 34
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Chef de projets Générix
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2010
Messages : 1 517
Points : 2 381
Points : 2 381
Par défaut Une requête par table

En insertion, tout comme en mise à jour ou suppression, on ne peut travailler que sur une seule table à la fois.

Tu dois donc :
Etape 1 :
Vérifier que le client n'existe pas déjà dans la table des clients
=> S'il existe, alors sauter à l'étape 3

Etape 2 :
Créer le client avec une requête INSERT et récupérer l'identifiant créé (avec le mot clé output par exemple, si tu es avec SQL Server 2008 R2)

Etape 3 :
Créer la commande avec une requpete INSERT en mettant dans le champ client_id la valeur de l'identifiant trouvé en étape 1 ou créé en étape 2

Il est possible de masquer ces mécanismes (et c'est même normalement "obligatoire" si on s'en tient à ce pour quoi les SGBD sont prévus à la base) en passant par une vue dotée de triggers. Dans la pratique, personne ne le fait, car c'est plus complexe à mettre en place, d'autant que tous les SGBD ne le supportent pas, et même aujourd'hui, ceux qui le supportent ne le supportent souvent que partiellement.
StringBuilder est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2012, 14h30   #3
Kropernic
Membre Expert
 
Avatar de Kropernic
 
Homme
Analyste / Programmeur / DBA
Inscription : juillet 2006
Messages : 1 924
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : Belgique

Informations professionnelles :
Activité : Analyste / Programmeur / DBA
Secteur : Distribution

Informations forums :
Inscription : juillet 2006
Messages : 1 924
Points : 1 458
Points : 1 458
Voici un article qui détail la manière de faire dont parle StringBuilder dans son message précédent.

http://blog.developpez.com/zinzineti...s-via-une-vue/
__________________
Kropernic (anciennement Griftou).
Kropernic est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 08h52.


 
 
 
 
Partenaires

Hébergement Web