Frage

Ich bin gerade dabei, mich mit WinForms vertraut zu machen, und habe durch ein schönes Tutorial die Magie entdeckt, die es mit sich bringt, eine Datenbanktabelle in die Entwurfsansicht meines Hauptformulars zu ziehen.Also, alles ist wunderbar, ich habe mein DataGridView, in dem alle Spalten wunderschön dargestellt sind.

ABER...

Wenn ich meine Anwendung mit dieser brandneuen, leeren .sdf-Datei ausführe (leerer Speicher für die beiden von mir erstellten Tabellen, die selbst leer sind), erhalte ich bei jedem Versuch eine -1 in der Spalte, die meiner Primärschlüssel-/Identitätsspalte entspricht um diesen ersten Datensatz zu erstellen.

Irgendeine Idee, warum das passieren könnte?Wenn es hilft, ist die Spalte eine int.

War es hilfreich?

Lösung

Da es sich um eine Identitätsspalte handelt und Sie sie noch nicht in der Datenbank gespeichert haben, ist sie -1.Ich gehe hier davon aus, dass dies der Fall ist, bevor Sie die Tabelle wieder in der Datenbank speichern, richtig?Sie müssen die Einfügung durchführen, bevor dieser Wert korrekt eingestellt wird.

Andere Tipps

@Brian -1 ist eine gute Wahl für den Standardwert, da wahrscheinlich keine „echten“ Zeilen Identitäten kleiner als Null haben.Wenn der Standardwert 0 oder 1 ist, besteht die Möglichkeit, dass es mit einer vorhandenen Zeile kollidiert und eine Verletzung des Primärschlüssels verursacht wird.

Bei Anwendungen, die offline bleiben und vor dem Speichern mehrere Zeilen erstellen, besteht eine gängige Praxis darin, für die Identität jeder neuen Zeile weiter rückwärts zu zählen (-2, -3, -4).Wenn sie dann gespeichert werden, kann der Server sie durch den echten „nächsten“ Wert aus der Tabelle ersetzen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top