ID Zuordnung

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von schnibli.

    ID Zuordnung

    Guten Tag,

    Mein Programm:
    Mein Programm holt und erstellt Daten in einer Access Tabelle.

    Ich habe folgendes Problem.
    Wenn ich von vb aus einen neuen Artikel erstelle, kriegt der die Temporäre ID -1,-2,-3
    Ich verwende die ID jedoch auch für Speichern von Pdf Anhängen.
    Ist es möglich das ich beim erstellen des Datensatzes schon die Richtige ID im Programm habe ...?


    Gruss Schnibli
    Problem ist, dass die ID(SchlüsselKey der Access Tabelle) erst in der Access Tabelle regestriert wird, wenn du den betreffenden Datensatz tatsächlich speicherst.
    Alternativ solltest dir die Access Tabelle erstmal öffnen und die letzte eingetragene ID holen um zu wissen was die nächste ist.
    Da fangen dann aber deine Probleme erst richtig an.
    Wenn in der Access Tabelle Datensätze gelöscht werden, wird der ID Zeiger nicht zurück gesetzt sondern zählt dann für einen neuen Datensatz weiter:
    Beispiel
    Vorher
    ID 10 (BLEIBT)
    ID 11 (BLEIBT)
    ID 12 (WIRD GELÖSCHT)
    ID 13 (BLEIBT)
    ID 14 (BLEIBT)

    nachher

    ID 10 (BLEIBT)
    ID 11 (BLEIBT)
    ID 13 (BLEIBT)
    ID 14 (BLEIBT)

    Das heist die ID wird nicht nachgerückt, da es sich um eine eindeutige Indentifizierung des Datensatzes handelt.
    Du solltest dir Besser eine 2. Spalte schaffen, in der du eigene fortlaufende Nummern, für dich eindeutig vergibst.
    eine Standard-Lösung für wenn man Dataset verwendet ist, nach jedem Insert eine Abfrage nachzuschießen, welchen Primärschlüssel die DB vergeben hat, und diesen dann ins Dataset einzupflegen.
    gugge Autowerte inserten
    machtn bisserl Mühe, das für jede Tabelle neu zu implementieren, auch wenns nur 5 Zeilen sind.
    In DBExtensions ists einfürallemal abgehandelt.