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

Votre réponse

5 réponses

Meilleure réponse
titeoe
Messages postés
433
Date d'inscription
samedi 26 avril 2003
Dernière intervention
4 décembre 2009
- 24 déc. 2008 à 13:24
3
Merci
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

Merci titeoe 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de titeoe
Meilleure réponse
samia_86
Messages postés
38
Date d'inscription
jeudi 27 avril 2006
Dernière intervention
31 juillet 2009
- 24 déc. 2008 à 15:46
3
Merci
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 

Merci samia_86 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de samia_86
Bul3
Messages postés
4934
Date d'inscription
samedi 1 juillet 2006
Dernière intervention
2 février 2015
- 24 déc. 2008 à 13:48
1
Merci
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
Messages postés
835
Date d'inscription
samedi 15 novembre 2008
Dernière intervention
14 janvier 2017
- 26 déc. 2008 à 17:21
0
Merci
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
Messages postés
38
Date d'inscription
jeudi 27 avril 2006
Dernière intervention
31 juillet 2009
- 26 déc. 2008 à 17:30
0
Merci
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.