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

Résolu
cs_bibicool Messages postés 81 Date d'inscription lundi 6 septembre 2004 Statut Membre Dernière intervention 7 février 2007 - 27 janv. 2005 à 22:26
aminescm Messages postés 7 Date d'inscription mercredi 19 octobre 2011 Statut Membre 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

4 réponses

MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
28 janv. 2005 à 10:33
3
cs_bibicool Messages postés 81 Date d'inscription lundi 6 septembre 2004 Statut Membre Dernière intervention 7 février 2007 1
28 janv. 2005 à 11:35
Merci pour l'info... je vais essayer de comprendre tout ca et voir si ca s'applique à mon code,

Bibicool
0
cs_bibicool Messages postés 81 Date d'inscription lundi 6 septembre 2004 Statut Membre Dernière intervention 7 février 2007 1
30 janv. 2005 à 15:31
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
0
aminescm Messages postés 7 Date d'inscription mercredi 19 octobre 2011 Statut Membre Dernière intervention 9 mai 2012 2
1 mars 2012 à 04:56
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.
0
Rejoignez-nous