Je suis depuis 2 jour sur un simple requete qui ne fonctionne pas...
Message d'erreur :
Violation de la contrainte PRIMARY KEY 'PK_ELEVE'. Impossible d'insérer une clé en double dans l'objet 'dbo.ELEVE'.
L'instruction a été arrêtée.
La PK est ELV_NUM .
Elle est automatiquement ajoutée au formulaire via un requete SELECT , donc pas de double.
Une bonne nouvelle quand même l'insert fonctionne puisque le nouveau tuple apparait dans ma table de la BDD.
La requête est executée 2 fois :
dacmd = new SqlDataAdapter(cmd); // hu ? la requête INSERT en tant que commande Select ?
...
dacmd.Fill(dscmd); // Première execution
cmd.ExecuteNonQuery(); // Seconde execution avec le même ID
Sinon à part ça, une base de donnée est un environnement à fort accès concurent, ta méthode de génération de l'identifiant unique est vouée à l'échec : tu ne peux pas ici garantir que personne ne va commencer la création d'un élève entre le moment où le premier utilisateur obtient l'ID de l'élève suivant et le moment où il execute la requête INSERT (surtout vu la façon dont tu l'obtient à l'ouverture du formulaire).
La définition d'IDENTITY sur la colonne serait peut être plus judicieux, ou a défaut voir pour une génération plus sécurisée de l'ID.