Laden...

Datenbankanwendung mit c# - Problem mit AutoIncrement Funktion

Erstellt von DWE vor 9 Jahren Letzter Beitrag vor 9 Jahren 1.407 Views
D
DWE Themenstarter:in
9 Beiträge seit 2015
vor 9 Jahren
Datenbankanwendung mit c# - Problem mit AutoIncrement Funktion

Hallo c# Community,

Ich schreibe heute meine erste Datenbankanwendung mit c#.
Ich arbeite mit Visual Studio Professional 2012.

Ich habe mir etwas ganz simples überlegt.
Ich erzeuge eine Datenbank mit folgenden Spalten:

Nummer Name Beruf

soweit sogut.
das Feld "Nummer" soll eine fortlaufende Nummer sein. Dies funktioniert mit der AutoIncrement Funktion, jedoch liegt genau hier mein Problem.

Starte ich mein Programm, füllt er das Feld Nummer mit 1. Danach lege ich einen Namen und einen Beruf an. Ich gehe dann in die nächste Zeile und das Programm schreibt in die nächste Zeile die Nummer 2, was es ja auch soll.
Dann fällt mir aber auf, das Ich in Zeile 1 den Namen falsch geschrieben hab, also gehe ich wieder in Zeile 1 und ändere den Namen. Beim verlassen der 2. Zeile, löscht sich automatisch die Nummer 2 aus der 2. Zeile.
Gehe ich nach meiner Änderung wieder in die 2. Zeile, vergibt er die Nummer 3.

Was kann ich dagegen tun ?

Ich Danke euch im Voraus.
Daniel

3.825 Beiträge seit 2006
vor 9 Jahren

Wir wissen leider von Deinem Projekt zu wenig um Dir helfen zu können.

Wir stellst Du die Daten dar ?

Wie hast Du die Verbindung zur Datenbank hergestellt ?

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

T
50 Beiträge seit 2014
vor 9 Jahren

Datemnbanken mit Autoincrement-Feldern haben immer die Angewohnheit mit der "angefangenen" Nummer weiter zu machen, als wäre diese vorhanden; sprich dieses Verhalten ist normal auch wenn du einen Datensatz verwirfst.

Um dem zu entgehen, müsstest du beim Verwerfen eines Datensatzes die DB (im Falle von Access z.B.) diese komprimieren.
Dann wird der Autoincrement-Wert auf den kleinsten Wert neu gesetzt.

5.658 Beiträge seit 2006
vor 9 Jahren

Hi Torni,

Um dem zu entgehen, müsstest du beim Verwerfen eines Datensatzes die DB (im Falle von Access z.B.) diese komprimieren.

Bitte nicht solche Tips geben. Sonst gewöhnt sich das noch jemand an. Wenn man benutzerdefinierte Daten speichern will, sollte man dafür zusätzliche Felder anlegen, und nicht auf solche Stunts zurückgreifen 😉

Christian

Weeks of programming can save you hours of planning