Bonjour,
Ce petit bout de code fait avec visual studio 2003 (C#) permet de voir comment insérer et récuperer des images stockées dans la base de données.
Il vous suffit afin de le faire tourner de créer la db d'exmple et de creer la procédure stockée qui enregistre l'image dans la db et de placer vos paramètres de connection au serveur ms sql.
La structure de la db et la procédure se trouvent dans le fichier info.txt.
Ensuite, ouvrez le projet et allez modifier le fichier web.config en y plaçant votre chaine de connection au serveur sql.
<add key="Connect" value="VOTRE CONNECTION STRING"></add>
Lancer ça tourne...
Source / Exemple :
private void save(string nomcomplet)
{
//Avec la class FileInfo on peut recuperer la taille de l'image
FileInfo fiImage=new FileInfo(nomcomplet);
//On declare un tableau de la taille de l'image
this.m_lImageFileLength=fiImage.Length;
m_barrImg=new byte[Convert.ToInt32(this.m_lImageFileLength)];
//Avec l'objet FileStream on remplit le tableau de byte
FileStream fs = new FileStream(nomc,FileMode.Open,FileAccess.Read,FileShare.Read);
int iBytesRead=fs.Read(m_barrImg,0,Convert.ToInt32(this.m_lImageFileLength));
fs.Close();
//On ouvre la connection
SqlConnection myConnection = new SqlConnection();
myConnection.ConnectionString = ConfigurationSettings.AppSettings["Connect"];
//On specifie que c'est une procedure stockee
SqlCommand myCommand = new SqlCommand("SP_StockImage",myConnection);
myCommand.CommandType = CommandType.StoredProcedure;
//Parametre
myCommand.Parameters.Add("@Name", SqlDbType.VarChar, 50);
myCommand.Parameters.Add("@Picture", SqlDbType.Image);
//Les valeurs pour les parametres de la procedure stockee
myCommand.Parameters["@Name"].Value = Label1.Text;
myCommand.Parameters["@Picture"].Value = m_barrImg;
//Parametre de sortie
SqlParameter renvoitID = new SqlParameter("@ID_Recup",SqlDbType.Int, 4);
renvoitID.Direction = ParameterDirection.Output;
myCommand.Parameters.Add(renvoitID);
//Open connection
myConnection.Open();
//execution de la procedure stockee
int id = Convert.ToInt32(myCommand.ExecuteScalar());
//Close connection
myConnection.Close();
//On redirige
Response.Redirect("Affiche.aspx?lastID="+id);
}
Conclusion :
Bonne journée
Christophe
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.