Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : récuperer id auto increment apres insert [ Base de données / SQL Server ] (morad_smi)

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é 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...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 3,463 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.