Question

Je suis juste de se salir en WinForms, et j'ai découvert, grâce à un joli tutoriel, la magie de glisser une table de base de données sur la vue de la conception de mon formulaire principal.Donc, tout est beau, j'ai obtenu mon DataGridView avec toutes les colonnes représenté magnifiquement.

MAIS...

Quand je lance mon application à l'encontre de cette nouvelle marque, vide .sdf (vide sauf pour les deux tableaux que j'ai créé, qui sont eux-mêmes vide), j'obtiens un -1 dans la colonne qui correspond à ma clé primaire/colonne d'identité à chaque fois que j'essaie de créer ce premier disque.

Une idée de quoi cela peut-il se passer?Si cela peut aider, la colonne est une int.

Était-ce utile?

La solution

Puisque c'est une colonne d'Identité et vous n'avez pas encore enregistré dans la base de données mais il est -1.Je suppose que c'est avant d'enregistrer la table dans la base de données, les corriger?Vous avez besoin pour effectuer l'insertion, avant que la valeur sera définie correctement.

Autres conseils

@Brian -1 est un bon choix pour la valeur par défaut depuis pas de "vrai" lignes sont susceptibles d'avoir des identités inférieur à zéro.Si elle a fait défaut à 0 ou 1, alors il y aurait une chance qu'il avait heurter à une ligne existante, provoquant une violation de clé primaire.

Pour les applications qui restent en mode hors connexion et de créer plusieurs lignes avant l'enregistrement, une pratique courante est de continuer à compter à rebours (-2, -3, -4) pour chaque nouvelle ligne de l'identité.Puis, quand ils sont enregistrés, le serveur peut les remplacer par le vrai "à côté" de la valeur de la table.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top