begin process at 2010 02 09 23:55:19
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Base de données

 > 

SQL Server

 > 

récuperer id auto increment apres insert


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

récuperer id auto increment apres insert

lundi 21 juillet 2008 à 11:33:19 | récuperer id auto increment apres insert

morad_smi

Bonjour chers développeurs !!!
j'ai un grand problème qui me tracasse, je suis bloqué depuis la semaine dernière
au fait le truc est simple et assez fréquent, je dois récupérer mon id auto increment après une insertion ( c#, framework 3.5, sql server 2005)
j'ai regardé partout et tout le monde dit la même chose : il faut faire ça après l'insert :
string requete = "SELECT SCOPE_IDENTITY()";
SqlCommand sel = new SqlCommand();
sel.Connection = conn;
sel.CommandText = requete;
userId = (int)sel.ExecuteScalar();
sauf que ceci ne marche pas et l'erreur que j'ai est "impossible de faire le cast" !!!
merci pour vos réponses ça va grave m'aider !!!

***MoraD***, ceux qui ne font rien ne se trompent jamais !!!
lundi 21 juillet 2008 à 12:36:57 | Re : récuperer id auto increment apres insert

Scooper

Salut,

En c# 2.0 je fais ca et ca marche :

 StringBuilder sb = new StringBuilder();

 sb.Append("INSERT INTO\n");
 sb.Append("dbo.XXXn");
 sb.Append("(\"XXX\", \"YYY\", ...");
 sb.Append("VALUES");
 sb.Append("(@XXX, @YYY, ....;\n");
 sb.Append("SELECT @@IDENTITY\n");

SqlCommand command = new SqlCommand(sb.ToString(), con);

SqlParameter param = new SqlParameter("@XXX", SqlDbType.XXX,myVal.Lenght);
param.Value = myVal;
command.Parameters.Add(param);
...

object obj = command.ExecuteScalar();
if (obj != null)
{
           userID  = int.Parse(obj.ToString());
}

en esperant que ca marche en 3.5
lundi 21 juillet 2008 à 13:08:56 | Re : récuperer id auto increment apres insert

Bidou

Administrateur CodeS-SourceS

Salut,
En .NET 3.5, avec Linq:

        public int AddMyObj(....)
        {
            int Id = 0;
            MyObj myObj= new MyObj();

           myObj.XXX = YYYY;
           myObj.XYZ = ABCD;

           using (var db = new MyDataContext())
          {
                db.MyObj.InsertOnSubmit(myObj);
                db.SubmitChanges();
                Id = myObj.Id;
          }
          return Id;
       }



-My Blog-
lundi 21 juillet 2008 à 13:30:36 | Re : récuperer id auto increment apres insert

morad_smi

Merci beaucoup pour vos réponses !!!
alors pour Scooper : j'ai cette erreur :"Le format de la chaîne d'entrée est incorrect." pour : userID  = int.Parse(obj.ToString());
et pour Bidou j'ai rien compris de ce que t'as écrit  :s aurais-tu un peu de temps à m'expliquer davantage ?
merci

***MoraD***, ceux qui ne font rien ne se trompent jamais !!!
lundi 21 juillet 2008 à 13:32:48 | Re : récuperer id auto increment apres insert

Bidou

Administrateur CodeS-SourceS
Euh, tu sais ce que c'est linq?
Si non, alors il faut que tu regardes de quoi ça parle, quand on fait du framework 3.5 c'est très utile....



-My Blog-
lundi 21 juillet 2008 à 14:05:31 | Re : récuperer id auto increment apres insert

morad_smi

non pas du tout :s je vais regarder !!!
cela dit il n'y a pas plus simple pour faire ce que je veux faire ?
Merci
lundi 21 juillet 2008 à 15:18:59 | Re : récuperer id auto increment apres insert

Scooper

regarde en debuggant ce que tu as dans obj si c'est bien le dernier ID de ta table qui est retournée,
dans mon INSERT, j'envoi 2 commandes : le insert puis le SELECT @@IDENTITY qui est retourné par executescalar
si en debuggant tu n'a rien dans obj c'est qu'il y a une autre erreur autre part je ne saurait t'aider je ne connais pas le framework 3.5
lundi 21 juillet 2008 à 15:29:06 | Re : récuperer id auto increment apres insert

Bidou

Administrateur CodeS-SourceS
Il n'y a rien de plus simple que ce que je t'ai indiqué plus haut.
C'est à peine 10 lignes qui se court après...



-My Blog-
jeudi 28 mai 2009 à 10:43:45 | Re : récuperer id auto increment apres insert

fazni

Bonjour:
j'ai un Problème : je voudrai crée séquence  sql sevrer qui permet incrément " id employer "
merci d'avence



Cette discussion est classée dans : insert, sel, id, auto, increment


Répondre à ce message

Sujets en rapport avec ce message

faire un INSERT en c# [ par july_68 ] bonjour,j'essaye de faire un INSERT avec le code suivant string sqlcmd=" insert into agenda (id_type,hd,hf,bloc,datedebut,datefin,Idperiodicite,Type,s [.NET] ID auto incrémenté après INSERT [ par Atmaweapon ] Bonjour à tous ! ma question est "classique" (mais je n'ai pas réussi a la "trouver" dans les question du forum et codes sources avec le moteur de re [C#] [SQL] Auto increment @@IDENTITY [ par scoubidou944 ] http://www.kamath.com/tutorials/tut007_identity.asp Article intéressant mais qui ne répond pas à ma question ;p @@IDENTITY est spécifique pour une co Demande de conseils [ par rpillot ] Bonjour,Je cherche à remplir un datagrid avec les contacts d'une société. J'ai 2 tables de base de données (liste des sociétés et liste des contacts, DataSet Typé, insert et auto incrément [ par babe59 ] Bonjour,J'essaye d'utiliser les dataset typés en C# sous VS2005. J'arrive à faire des update, delete et insert mais je n'arrive pas à récupérer la val recuperer 1 variable dans un trigger [ par bootchoz ] bonjour,je debute en c# et je n'arrive pas a recuperer la valeur d'une variable @id_pers pour l'inserer dans une table via un trigger.voici le code de INSERT du login seulement dans un enregistrement d'une table access [ par sarrita ] salutt!je voudrais insérer un nouveau login,dans son enregisrement correspondant de la table USERS sans changer les autres valeurs dont " user_id,et P recupere last_insert_id avec mysql en csharp [ par olibara ] BonjourQuelqu'un  sait-il comment depuis cSharp je peux utiliser la commandeselect Last_insert_id() de mysqlPour recuperer cet ID last_insert_id avec un tableadapter [ par kyuubi6 ] bonjour, Je cherche a savoir si il y a une methode toute faite pour retrouver l id de la derniere insertion dans la base de donnees (correspondant dan auto increment [ par 17182 ] salutje travail avec sql server 2005, je veux savoir si'l existe la propriété auto increment pour un attribut qui est le clé primaire de la table ?  m


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,468 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales