IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ADO.NET Discussion :

requête d'insertion dans la BD


Sujet :

ADO.NET

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2011
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 71
    Points : 31
    Points
    31
    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?

  2. #2
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 4 147
    Points : 7 392
    Points
    7 392
    Billets dans le blog
    1
    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.
    On ne jouit bien que de ce qu’on partage.

  3. #3
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    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

Discussions similaires

  1. requéte d 'insertion dans 2 table lié
    Par jalalnet dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 22/03/2011, 04h59
  2. Requête d'insertion dans une base de données
    Par Kalion dans le forum VB.NET
    Réponses: 5
    Dernier message: 25/02/2009, 13h45
  3. [SQL] Problème de requête d'insertion dans une base SAGE
    Par Swapyyy dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 04/07/2008, 10h14
  4. [MySQL] Erreur dans la requête d'insertion
    Par paradeofphp dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 08/11/2006, 16h06
  5. Requête d'insertion dans une base ACCESS
    Par kurul1 dans le forum C++Builder
    Réponses: 5
    Dernier message: 02/11/2006, 17h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo