[C#][Base de donnée] récupérer identifiant auto-incrémenté [Résolu]

Messages postés
81
Date d'inscription
lundi 6 septembre 2004
Dernière intervention
7 février 2007
- - Dernière réponse : aminescm
Messages postés
7
Date d'inscription
mercredi 19 octobre 2011
Dernière intervention
9 mai 2012
- 1 mars 2012 à 04:56
Bonjour,



j'ai un ptit problème.. :-)



Voilà, j'ai un programme en C# et une base de donnée Access. Dans mon
programme, j'ai un form qui me permet d'ajouter de nouveau client.

Je crée un client, ok...

MAintenant j'aimerais pouvoir directement le modifier sans devoir
fermer ce form et le réouvrir. Le problème est que pour faire mon
update j'ai besoin de l'identifiant incrémenté qui a été créé dans la
base de donnée sous ma clés primaire.

Comment faire ?



J'ai trouvé une solution sur un site qui consiste à ajouter une valeur
aléatoire, ensuite retrouver l'ID avec cette valeur et modifier la
valeur avec la correcte.

ex : pour l'âge, on met 5000 ans. Ensuite on recherche l'utilisateur
qui a 5000 ans. On trouve son identifiant et on update son age à 26
ans...

Mais bon ca me semble dûr comme solution, rien de plus pratique comme en MySQL ??? mysql_insert_id()



Avez -vous d'autres trucs à me proposer ?

Merci




Bibicool
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
3489
Date d'inscription
lundi 16 octobre 2000
Dernière intervention
30 octobre 2008
3
Merci
Je crois que ta solution se trouve ici :

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconRetrievingIdentityOrAutonumberValues.asp

Mx

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de MorpionMx
Messages postés
81
Date d'inscription
lundi 6 septembre 2004
Dernière intervention
7 février 2007
0
Merci
Merci pour l'info... je vais essayer de comprendre tout ca et voir si ca s'applique à mon code,

Bibicool
Commenter la réponse de cs_bibicool
Messages postés
81
Date d'inscription
lundi 6 septembre 2004
Dernière intervention
7 février 2007
0
Merci
Super, MorpionMX, ca marche vraiment bien.



Pour info pour les suivants, j'ai simplement implémenté ceci :



int newID = 0;

OleDbCommand idCMD = new OleDbCommand("SELECT @@IDENTITY", MyConnection);

newID = (int)idCMD.ExecuteScalar();



Access accepte le @@IDENTITY... pour retrouver le dernier ID autoincrémenté.


Bibicool
Commenter la réponse de cs_bibicool
Messages postés
7
Date d'inscription
mercredi 19 octobre 2011
Dernière intervention
9 mai 2012
0
Merci
voila cette méthode , juste changer le nom de votre table et la commande (SqlCommand)
tout dépend de votre SGBD. et n oublier pas de déclarer votre connexion (con) .
SqlCommand : SQL SERVER
oleDbCommande ; access
.
.
.




Int32 Id;
string SqlString1 = "SELECT IDENT_CURRENT('PERSONNE')";
SqlCommand Com = new SqlCommand(SqlString1, con);
con.Open();
Id = Convert.ToInt32(Com.ExecuteScalar());

b.chnace.
Commenter la réponse de aminescm

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.