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

C# Discussion :

c# base de donnée comment rajouter une ligne avec clé primaire est un autoincrement


Sujet :

C#

  1. #1
    Membre régulier
    Inscrit en
    Septembre 2006
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 232
    Points : 94
    Points
    94
    Par défaut c# base de donnée comment rajouter une ligne avec clé primaire est un autoincrement
    salut à tous

    1. Dans ma table (Access) la clé primaire est autogénérée.
    2. si je rajoute par le code via un DataTable une ligne quelle valeur je donne à la clé avant de mettre à jour ma source de données?
    3. et puis j'ai choisi une clé autogénérée pour me décharger de l'affectation et le choix d'une valeur pour cette clé, est ce la bonne méthode.....une valeur aléatoire n'est pas aussi une méthode?


    Merci pour vos suggestions

  2. #2
    Membre actif
    Inscrit en
    Août 2006
    Messages
    381
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 381
    Points : 252
    Points
    252
    Par défaut
    Bonjour,

    tu donnes aux clés des lignes que tu ajoutes les valeurs que tu veux, à la première tu donnes 0, à la deuxième tu donnes 1, etc.
    De toute manière quand tu sauvegarderas tes données en base ces valeurs ne seront pas utilisées.
    Ensuite, saches que tu peux définir l'index comme clé primaire dans la DataTable.
    Si tu utilises des DataTable comme sorte d'objets métiers, utilises des DataSet typés...

    Bye

  3. #3
    Membre régulier
    Inscrit en
    Septembre 2006
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 232
    Points : 94
    Points
    94
    Par défaut
    Citation Envoyé par Pilloutou Voir le message

    tu donnes aux clés des lignes que tu ajoutes les valeurs que tu veux, à la première tu donnes 0, à la deuxième tu donnes 1, etc.
    De toute manière quand tu sauvegarderas tes données en base ces valeurs ne seront pas utilisées.

    Bye
    cela veut dire que Access va gérer lui même les valeurs de la clé, c'est ça?

    Citation Envoyé par Pilloutou Voir le message


    Ensuite, saches que tu peux définir l'index comme clé primaire dans la DataTable.
    Si tu utilises des DataTable comme sorte d'objets métiers, utilises des DataSet typés...

    Bye

    par contre pour l'utilisation de l'index comme clé primaire j'avoue ne pas savoir comment faire et quelle avantage (qui doit surement exister) par rapport à la génération automatique.

    merci pour ton aide.

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Points : 1 561
    Points
    1 561
    Par défaut
    en réalité l'index dans le DataTable ne change rien sur le principe, sauf quand tu créer ton DataRow, mais sinon ...

    Quand tu défini une colonne comme autogénérée, dans ta requête tu met la valeur que tu veux, tu peut toujours mettre 0, ou un incrément... dans tous les cas ca ne changera rien au résultat, car au fur et a mesure de l'insertion, il va remplacer la valeur que tu as mise par l'autoincrément qu'il a.

    Donc si tu met insert ... (0, ...) dans la table il se peut que ca devienne 100002, si l'index d'autoincrément était arreté sur 100001 dans la table.
    Tu peux meme appliquer une valeur par défaut a tes colonnes autogénérée... l'intérêt est que dans ce cas, tu n'a carrément plus à t'en soucier dans la requete d'insertion... puisque tout sera directement géré par le SGBD...

    le problème de la méthode aléatoire pour générer une clé, c'est qu'il y a toujours une probabilité non nulle que la valeur générée soit une valeur déjà existante, il te faudra alors vérifier si l'insertion a fonctionnée et dans le cas d'un échec regénérer une clé, ou vérifier juste avant insertion que cette clé n'existe pas avec une requete genre "if exists (select * from table where ...)"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/11/2009, 19h18
  2. Comment rajouter une ligne dans une base de données ?
    Par pttangediabolik dans le forum Débuter
    Réponses: 2
    Dernier message: 09/05/2008, 15h06
  3. Comment rajouter une ligne ?
    Par oceanne dans le forum Langage
    Réponses: 3
    Dernier message: 19/04/2007, 18h19
  4. comment insérer une ligne avec CFile::Write
    Par gbardy dans le forum MFC
    Réponses: 2
    Dernier message: 10/08/2006, 10h19
  5. comment sauter une ligne avec Alert()
    Par sagitarium dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/05/2006, 17h35

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