[C#] Apres un insert recuperer l'identifiant
Bonjour à tous !!!
Je suis confronté à un problème que je ne sais résoudre.
J'ai une table super simple nommée "Année"
Elle possède deux colonnes :
Identifiant : uniqueidentifier
Libelle : char
Maintenant lorsque j'ajoute une ligne via mon application je souhaiterais au moment de l'insertion recupérer l'identifiant de la ligne.
J'ai trouvé pas mal d'exemple sur le net et ce forum mais aucun ne marche.
Voici mon code d'insertion :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| private void InsertAnnee(int annee)
{
object retour;
Boolean Erreur = false;
SqlTransaction transaction = null;
string ChaineConnexion = (string)ConfigurationManager.ConnectionStrings["Site_ENATAConnectionString"].ConnectionString;
SqlConnection Connexion = new SqlConnection(ChaineConnexion);
string req = "Insert Into Annee values (newid(), '" + annee.ToString() + "'); Select @@IDENTITY as 'identity'";
try
{
Connexion.Open();
transaction = Connexion.BeginTransaction();
SqlCommand MyCommand = new SqlCommand(req, Connexion);
MyCommand.Transaction = transaction;
retour = MyCommand.ExecuteScalar();
}
catch
{
Erreur = true;
}
finally
{
// Validation de la trnasaction
if (transaction != null)
{
if (Erreur)
{
transaction.Rollback();
}
else
{
try
{
transaction.Commit();
}
catch
{
transaction.Rollback();
}
}
}
// fermeture de la connexion
if (Connexion.State == ConnectionState.Open)
{
Connexion.Close();
}
}
} |
ma variable retour reste toujours à vide que j'utilise la requête
Code:
1 2
| Select @@Identity
Select SCOPE_IDENTITY() |
Cela vient il de mon type de donnée pour Identifiant.
Ou alors y a t'il une erreur dans mon code (je tiens à préciser que ca ne génère pas d'exception)
Merci davance de votre aide
@+
Hirochirak