11
votes

Comment charger l'image de SQL Server dans la zone d'image?

J'ai beaucoup essayé de constater que comment puis-je charger une image de SQL Server à la boîte d'images, mais je n'ai pas pu trouver de matériel très utile.

Je suis d'abord enregistré l'image dans la base de données avec l'aide de l'aide de la requête suivante: xxx

maintenant je veux charger l'image dans une zone d'image.


2 commentaires

Euh, il semble que vous venez de "insérer le nom de fichier" - donc, 1) Obtenez le nom de fichier de SQL Server, c'est juste un champ de texte (ceci est bien couvert) 2) Chargez l'image dans la boîte à lettres à l'aide du nom de fichier (ceci est bien couvert). Cependant, parce que c'est "juste un nom de fichier", cela signifie également que le fichier doit être accessible (avec ce chemin ou quelque chose qui en est généré) sur le système qui veut le charger ...


S'il vous plaît expliquer la procédure.


4 Réponses :


29
votes

Vous n'avez jamais téléchargé le contenu de l'image dans la base de données. C'est juste le nom de fichier.

disons, comme exemple, que vous avez un chemin de fichier à travailler (il vous semble que vous le faites, étant donné le contenu de la question). Dans votre application, vous téléchargeriez ceci sur la base de données suivant ce format suivant: p> xxx pré>

veuillez garder à l'esprit que votre champ code> pic code> est probablement nécessaire changer de type de données. Un type commun pour ces informations est varbinary code>. P>

La pièce suivante lit le fichier dans une boîte d'images. Pour cela, vous devrez sélectionner les données: P>

SqlDataAdapter dataAdapter = new SqlDataAdapter(new SqlCommand("SELECT pic FROM imageTest WHERE pic_id = 1", yourConnectionReference));
DataSet dataSet = new DataSet();
dataAdapter.Fill(dataSet);

if (dataSet.Tables[0].Rows.Count == 1)
{
    Byte[] data = new Byte[0];
    data = (Byte[])(dataSet.Tables[0].Rows[0]["pic"]);
    MemoryStream mem = new MemoryStream(data);
    yourPictureBox.Image= Image.FromStream(mem);
} 


3 commentaires

Ce n'est pas nécessairement un problème, en fonction de la conception globale (bien que le chemin local soit louche). Commentaire digne: oui. Répondre digne: pas tellement.


Alors, comment puis-je télécharger l'image? Voulez-vous s'il vous plaît élaborer?


Cela signifie que vous devez me donner deux solutions; Téléchargement, chargement de la zone d'image. Merci :)



1
votes

Voir Muhammad, ce que nous faisons lorsque vous traitez avec des images dans des scénarios dynamiques est le suivant:

  1. Téléchargez l'image dans un répertoire d'applications Web (comme / Images / ou quelque chose)

  2. Nous stockons l'adresse de l'URL dans le champ de base de données de la table.

  3. endroit où vous souhaitez inclure l'image, définissez simplement la source d'image dans le champ Database et il sera affiché.

    J'espère que cela aide


0 commentaires

2
votes

0 commentaires

0
votes

Vérifiez avec ce code:

SqlDataAdapter dAdapter = new SqlDataAdapter(new SqlCommand("SELECT Photo FROM Image", conn));
        DataSet dSet = new DataSet();
        dAdapter.Fill(dSet);

        if (dSet.Tables[0].Rows.Count == 1)
        {
            Byte[] data = new Byte[0];
            data = (Byte[])(dSet.Tables[0].Rows[0]["Photo "]);
            MemoryStream mem = new MemoryStream(data);
            PictureBoxName.Image = Image.FromStream(mem);
         }


0 commentaires