Récupérer le résultat d'une insertion

cs_Finality Messages postés 76 Date d'inscription samedi 28 janvier 2006 Statut Membre Dernière intervention 22 janvier 2009 - 26 déc. 2008 à 17:44
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 27 déc. 2008 à 18:20
Bonjour tout le monde,


je travaille actuellement sur un petit script permettant d'insérer des données dans une base Access. Pour cela j'utilise OleDB.


Voilà un exemple d'insertion dans ma base de données :

Code :
//on créé l'objet connection
OleDbConnection Cnx = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=CProjects.mdb");

Cnx.Open();

//on insere l'employe dans la BDD
OleDbCommand Cmd = new OleDbCommand("INSERT INTO Personnel(" + TitreChampsSups +") VALUES(" + ValeursChampsSups +")");

Cmd.Connection = Cnx;

Cmd.ExecuteNonQuery();

dans ma table Personnel, la clé primaire est un numéro
automatique. D'où ma question : est-il possible de récupérer le numéro
qui a été attribué à ce nouvel enregistrement ?


Je sais que cela est possible avec d'autres SGBD (MySql par exemple), donc sans doute avec Access.


Je vous remercie pour votre aide

Cordialement

Finality

3 réponses

cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 33
26 déc. 2008 à 18:44
Bonsoir,

Pour Access je ne sais pas, mais en SQL c'est la variable @@IDENTITY qui contient la derniere valeur inserrée.

ex "INSERT INTO [MaTable] ([MaColonne]) VALUES ('test') SELECT @@IDENTITY "
retournera la valeur de la colonne de type "identity" attribuée automatiquement

C# is amazing, enjoy it!
0
bubbathemaster Messages postés 339 Date d'inscription dimanche 26 janvier 2003 Statut Membre Dernière intervention 25 mars 2009 4
27 déc. 2008 à 13:33
Chaque base de données à sa technique particulière pour recup les id

Sous SQL Server, @@IDENTITY,
Sous PostgreSQL, curval("sequence_d")

etc..

Il me semble que Access supporte @@IDENTITY, ie:

SELECT @@IDENTITY FROM table
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
27 déc. 2008 à 18:20
Salut,

Attention avec @@IDENTITY, la valeur que cette fonction retourne est la dernière pour la session courante.
Pour une portée plus limitée, voir SCOPE_IDENTITY.

/*
coq
MVP Visual C#
CoqBlog
*/
0
Rejoignez-nous