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

Accès aux données Discussion :

[VB.NET] [ADO.NET] Clef primaire auto incrémenté


Sujet :

Accès aux données

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5
    Points : 5
    Points
    5
    Par défaut [VB.NET] [ADO.NET] Clef primaire auto incrémenté
    Bonjour,

    Je sais que ce sujet a été discuter à quelques reprise parce que j'ai vu certains messages à ce sujet. Il y a seulement une petit chose que je me demande.

    Je fait actuellement une petite application en vbnet et je me suis servis de l'assistant pour créer toutes mes tables dans mon dataset.

    Je me suis fait un dataAdapter pour chaque table puis j'ai fais Generate DataSet et voilà j'ai toutes mes informations. Seulement je me pose une question. Deux de mes tables on des Clefs avec numéro automatique(créé dans access) J'ai vu dans les propriété de mon dataset qu'il les avait reconnu et qu'il avait automatiquement mis l'option AutoIncrement à true et le step à 1. Voila donc ma question. Est-ce que ca signifie que je n'ai plus en m'en soucier et dès que je vais faire un insert dans une table de mon dataset il va automatique incrémenté le numéro? Aussi j'aimerais savoir quand je vais retourner vers access ces nouvelles lignes dois-je faire quelque chose de particulier ou si seulement en faisant la command d'update tous va se faire correctement?

    Ce que j'ai peur c'est que habituellement quand on travaille dans access et qu'on a un numéro auto on ne peut pas entrer soit même le numéro, alors je me demandais si lorsque je vais transférer ces nouvelles lignes avec un numéro auto est-ce que access va me faire une erreur.

    J'espère que mon message est claire

    Merci beaucoup!

  2. #2
    Membre éclairé
    Avatar de m-mas
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2003
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2003
    Messages : 576
    Points : 719
    Points
    719
    Par défaut
    Bonjour
    Est ce que tu as essayé tout ce que tu viens de dire ? insérer une ligne, voir si .net va gérer les numéros automatiques (oui), insérer plusieurs lignes, faire l'update, aller voir dans Access, ...

    c'est plus simple

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 86
    Points : 47
    Points
    47
    Par défaut
    Bonjour.

    il me semble que en base de données, la caractéristique d'une colonne a primary keyx, permet simplement de faire une indexation et d'effectuer des requetes sans doublon. une autoincrémentation auto, permet de ne pas gérer l'insertion de ces clesf..simplement..ce qui importe pour la suite (situ vexu faire des imports ou des expoert...est de resxpecter les contrainte de type, et de non duplication.
    Oui, Ado.net, à justement l'avantage de faire le pond entre la bdd et le code vb......lors de update, insert..la mise a jour avec la base sera éffectué avec les memes contraintes que tu as crée dans access (Donc si primary est incrémenté automatique...la réponse a ta question est Oui.)..

    J'espère que la réponse est claire.

    A++

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Merci de vos réponse. J'ai finalement fais les testes ce matin et effectivement chaqu fois que je fais un ajout de ligne dans ma BD, le numéro est incrémenter automatiquement et je n'ai pas en m'en soucier.

    Par conter j'ai une autre question. Après avoir essayé d'insérer j'ai essayé de supprimer et sa ne fonctionne pas. Voila j'ai 2 tables Clients et l'autre Factures. Factures est une table Enfant de client et donc quand je supprime un client je veux que toutes les factures de ce client soit aussi effacées.

    Donc voila ce que j'ai fait:
    ***J'utilise un dataSet fortement typé
    ***dsFormation est mon dataset et formation un objet de celui-ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    Dim Client As dsFormation.tblClientDataTable = Formation.tblClient
    Dim ligneClient As dsFormation.tblClientRow
    ligneClient = Client.NewtblClientRow
    ligneClient = Formation.tblClient.FindByNoClient(1)
     
    Formation.tblClient.RemovetblClientRow(ligneClient)
     
    Try
                daFactures.Update(Formation.GetChanges)
                daClient.Update(Formation.GetChanges)
     
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
    Dans mon dataSet le Client ainsi que toutes les factures ont été effacées. Par contre si je vais ensuite voir ma BD dans Access il y a seulement les factures qui ont été supprimées et pas le client.

    Est-ce que j'oublie quelque chose? Si quelqu'un a une idée ne vous gêné pas

    Merci


    abelman

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Bon j'ai finalement résolu mon problème de supression. J'avais oulibe la différence entre le Remove et le Delete. Donc en supprimant de cette façon:

    ligneClient.Delete()

    tout fonctionne très bien!!

    Encore merci pour vos réponses!

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

Discussions similaires

  1. [VB.NET] [ADO.NET] Base de données et relations
    Par DotNET74 dans le forum Accès aux données
    Réponses: 2
    Dernier message: 14/03/2005, 13h06
  2. [VB.NET] [ADO.NET] Requête paramétrée
    Par DotNET74 dans le forum Accès aux données
    Réponses: 2
    Dernier message: 11/03/2005, 08h39
  3. [VB.NET] [ADO.NET] Récupérer id après insertion
    Par nashouille dans le forum Accès aux données
    Réponses: 9
    Dernier message: 09/01/2005, 15h54
  4. [VB.NET] [ADO.NET] Adapter, TableMapping et DataSet xsd
    Par neo.51 dans le forum Accès aux données
    Réponses: 14
    Dernier message: 23/09/2004, 16h52
  5. [VB.NET] [ADO.NET] DataAdapter et concaténation
    Par master56 dans le forum Accès aux données
    Réponses: 3
    Dernier message: 04/06/2004, 13h25

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