Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment charger une image de SQL Server dans une zone d'image ?

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

Supposons, par exemple, que vous ayez un chemin de fichier avec lequel travailler (il semble que vous en ayez, étant donné le contenu de la question). Dans votre application, vous le téléchargeriez dans la base de données en suivant ce format :

byte[] image = File.ReadAllBytes("D:\\11.jpg");

SqlCommand sqlCommand = new SqlCommand("INSERT INTO imageTest (pic_id, pic) VALUES (1, @Image)", yourConnectionReference);
sqlCommand.Parameters.AddWithValue("@Image", image);
sqlCommand.ExecuteNonQuery();

Veuillez garder à l'esprit que votre pic le champ devra plus que probablement changer de type de données. Un type courant pour ces informations est VARBINARY .

La partie suivante consiste à lire le fichier dans un PictureBox. Pour cela, vous devrez SÉLECTIONNER les données :

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);
} 

Et cela devrait être à peu près tout. Vous voudrez peut-être faire de meilleurs contrôles de sécurité, mais cela devrait vous aider à démarrer.