Enregistrer une image dans une base sql server et afficher avec nb.net [Résolu]

samia_86 38 Messages postés jeudi 27 avril 2006Date d'inscription 31 juillet 2009 Dernière intervention - 24 déc. 2008 à 13:05 - Dernière réponse : samia_86 38 Messages postés jeudi 27 avril 2006Date d'inscription 31 juillet 2009 Dernière intervention
- 26 déc. 2008 à 17:30
salut tout le monde
j'ai une base de données sql server la ou j'ai une table avec un champ d'image,
je voudrais inserer une image dans la base de données et afficher l'image sur une formulaire avec le vb.net
merci d'avance
A+
Afficher la suite 

5 réponses

Répondre au sujet
titeoe 433 Messages postés samedi 26 avril 2003Date d'inscription 4 décembre 2009 Dernière intervention - 24 déc. 2008 à 13:24
+3
Utile
Bonjour,

Fais une recherche sur les champ Blob en base et leur exploitation en VB.Net. Tu trouveras des myriades d'exemples sur google.

Bon courage
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de titeoe
samia_86 38 Messages postés jeudi 27 avril 2006Date d'inscription 31 juillet 2009 Dernière intervention - 24 déc. 2008 à 15:46
+3
Utile
slt et merci bcp pour les reponse enfaite je vé faire comme "Bul3" m'a conseilé
d'abor comment recuperer le nom d'image?
je vous explique mon pb:

1) j'ai une bouton "Télécharger l'image" ki telecharge une image exise sur le poste voici le code ke j'ai fé est ca marrche bien/




 Dim

OpenFileDialog


As





New

OpenFileDialog





Dim

img


As

Image










If

OpenFileDialog.ShowDialog() = DialogResult.OK


Then


img = Drawing.Image.FromFile(OpenFileDialog.FileName)


PictureBox.Image = img








End





If


2) j'ai  un "PictureBox" ki contien l'image telecharger
mon probleme ce ke je ve recuperer l'image et l'inseré dans une base sql server pour k'elle s'affiche dans une autre formulaire

j'espere ke vous me compren et merci une autre fois pour la reponse.
A+
aidé moi SVP 
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de samia_86
Bul3 4934 Messages postés samedi 1 juillet 2006Date d'inscription 2 février 2015 Dernière intervention - 24 déc. 2008 à 13:48
+1
Utile
bonjour,

>>je voudrais inserer une image dans la base de données
pas sur que ce soit une bonne idée !
mettre l'adresse d'une image, pourquoi pas,
mettre une image, ce n'est pas la finalité
d'une base de données...
enfin... ce n'est qu'un avis !
@+
Commenter la réponse de Bul3
cs_Robert33 835 Messages postés samedi 15 novembre 2008Date d'inscription 14 janvier 2017 Dernière intervention - 26 déc. 2008 à 17:21
0
Utile
Bonjour,

Le stockage d'image dans un base risque de donner une taille impressionante à la base, donc avoir un impact direct sur les fonctions de maintenance, cependant il peut être interressant de stocker les images directement dans la base plutôt que le Path des fichiers, la réplication des bases pouvant alors permettre de partager ces données.

mais je te conseille tout de même le stockage de la référence au fichier, et le cas échéant un petit service permettant un acces depuis un poste distant.

Voici tout de même un exemple de stockage d'image.

En supposant que la table SQL Server contenant les images s'appelle IMAGES et qu'elle possède 2 colonnes
"IMAGE_ID" de type 'int' la clef primaire
"DATA" de type image.

//1 Stockage dans la base

byte[] photo;

//Récupération de l'image d'un fichier
using (FileStream fs =
new FileStream("coucou.bmp", FileMode.Open, FileAccess.Read))
{

  using (BinaryReader br =
new BinaryReader(fs))
  {
    photo = br.ReadBytes((
int)fs.Length);
  }
}

SqlCommand insert =
new SqlCommand("INSERT INTO IMAGES (IMAGE_ID, DATA ) VALUES (@id,@data)",connection);
insert.Parameters.Add("@id",1);
insert.Parameters.Add("@data",
photo );
insert.ExecuteNonQuery();

//1 récupération et affichage dans un PictureBoxSqlCommand query new SqlCommand("Select DATALENGTH(DATA), DATA FROM IMAGES WHERE (IMAGE_ID @id)",connection);
query.Parameters.Add("@id",1);
SqlDataReader reader = query.ExecuteReader();

if (reader.Read() ==
true)
{

  int size = reader.GetInt32(0);

  byte[] buffer =
new
byte[size];

  long retval = reader.GetBytes(1, 0, buffer, 0, size);
  MemoryStream ms =
new MemoryStream(buffer);
  Image img = Image.FromStream(ms);
  Bitmap bitmap =
new Bitmap(img);
  bitmap.MakeTransparent(Color.Magenta);
  pictureBox1.Image=bitmap;
}
reader.Close();

C# is amazing, enjoy it!
Commenter la réponse de cs_Robert33
samia_86 38 Messages postés jeudi 27 avril 2006Date d'inscription 31 juillet 2009 Dernière intervention - 26 déc. 2008 à 17:30
0
Utile
slt et merci bcp Mr Robert33 pour votre aide je vé essayer votre code et je vous dissent la resulta
merci une autre fois
Commenter la réponse de samia_86

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.