Récupérer une clé primaire auto-incrémentée lors d'une insertion [Résolu]

Signaler
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
-
TheSaib
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
-
Voila, toute ma question est dans le titre, :-)

En fait, j'ai ma table avec deux éléments (une clé primaire FK auto-incrémentée et une image)

Ca marche nickel. Seulement, j'aimerais récupérer lors de l'insertion
cette clé primaire (car sinon, après, je vais pas faire un recherche de
l'image, ca serait trop bête)



Voici mon code pour ceux que ca intéresse :



//Récupération de l'image

byte[] Buffer = new byte[30000];

FileStream File = new FileStream(ImageName+".gif",FileMode.Open,FileAccess.Read);

BinaryReader BR = new BinaryReader(File);

File.Seek(0,SeekOrigin.Begin);

BR.Read(Buffer,0,(int)(File.Length));

BR.Close();

File.Close();



//Sauvegarde dans la base

SqlConnection SqlConnect = new SqlConnection(ConnectString);

SqlCommand Command = new SqlCommand("INSERT INTO img (IMAGE) VALUES (@IMAGE)",SqlConnect);

Command.Parameters.Add(new SqlParameter("@IMAGE",SqlDbType.Image));

Command.Parameters["@IMAGE"].Value = Buffer;

SqlConnect.Open();

Command.ExecuteNonQuery();

SqlConnect.Close();



Voili, merci à tous

Billou_13
Bask En Force

7 réponses

Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
42
Tu trouveras ce que tu veux ici ou ici
Mx
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
14
Utilise ExecuteScalar avec la commande SELECT @@Identity

::|The S@ib|::
MVP C#.NET
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
16
voila mon code : merci les gars, je vous doit une fière chandelle :



//Récupération de l'image

byte[] Buffer = new byte[30000];

FileStream File = new FileStream(ImageName+".gif",FileMode.Open,FileAccess.Read);

BinaryReader BR = new BinaryReader(File);

File.Seek(0,SeekOrigin.Begin);

BR.Read(Buffer,0,(int)(File.Length));

BR.Close();

File.Close();



//Sauvegarde dans la base

SqlConnection SqlConnect = new SqlConnection(ConnectString);

string Request = "INSERT INTO img (IMAGE) VALUES (@IMAGE);";

Request += "DECLARE @ID int;";

Request +"SET @ID @@IDENTITY;";

Request += "SELECT @ID;";



SqlCommand Command = new SqlCommand(Request,SqlConnect);

Command.Parameters.Add(new SqlParameter("@IMAGE",SqlDbType.Image));

Command.Parameters["@IMAGE"].Value = Buffer;

SqlConnect.Open();

int ID = (int) Command.ExecuteScalar();

SqlConnect.Close();

return(ID);

Billou_13
Bask En Force
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
16
déjà ?!? , merci de ta rapidité, j'y v de ce pas !



Merci beaucoup

Billou_13
Bask En Force
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
14
d'ailleur la solutionde fab est encore mieux car elle combine les deux.

::|The S@ib|::
MVP C#.NET
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
16
Merci les gars, ca a l'air d'être du bon !

Je poste mon bon code dès que j'ai réussi le test LOL

Billou_13
Bask En Force
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
14
Deriens

::|The S@ib|::
MVP C#.NET