Enregistrer une image dans une base sql server et afficher avec nb.net

Résolu
samia_86 Messages postés 38 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 31 juillet 2009 - 24 déc. 2008 à 13:05
samia_86 Messages postés 38 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 31 juillet 2009 - 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+

5 réponses

titeoe Messages postés 433 Date d'inscription samedi 26 avril 2003 Statut Membre Dernière intervention 4 décembre 2009 1
24 déc. 2008 à 13:24
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
3
samia_86 Messages postés 38 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 31 juillet 2009 2
24 déc. 2008 à 15:46
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 
3
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
24 déc. 2008 à 13:48
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 !
@+
1
cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 33
26 déc. 2008 à 17:21
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!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
samia_86 Messages postés 38 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 31 juillet 2009 2
26 déc. 2008 à 17:30
slt et merci bcp Mr Robert33 pour votre aide je vé essayer votre code et je vous dissent la resulta
merci une autre fois
0
Rejoignez-nous