Sunday, August 16, 2009

Comment faire pour enregistrer une image dans une base de données SQL Server?

La plupart des applications Web ont un grand nombre d'images utilisées. Ces images sont généralement stockés dans un dossier de serveur Web et sont accessibles en donnant le chemin relatif au dossier en ce qui concerne le dossier racine du site. . Net est la plate-forme d'applications distribuées pour l'instant, ASP.Net peuvent être utilisés pour stocker des images qui sont petits pour être stockées dans une base de données comme SQL Server 2000 et versions ultérieures. À cet effet, la base de données SQL Server fournit un type de données appelé "image" qui est utilisé pour stocker des images dans la base de données. Pour accéder à ces images stockées dans la base de données, nous utiliserons la ADO.Net classes. Pour savoir comment insérer et d'extraire une image à la base de données SQL Server, vous pouvez créer une page. Aspx qui peuvent avoir un contrôle HtmlInputFile qui est utilisé pour sélectionner le fichier image qui doit être sauvegardé dans la base de données. Vous pouvez également créer un contrôle de texte dans lequel vous pouvez ajouter le nom de l'image ou d'une remarque ou une image id de l'image sauvegardée. Utilisez un contrôle de bouton pour télécharger l'image à la base de données. Namespaces comme System.Data.SqlClient, System.Drawing, System.Data, System.IO et System.Drawing.Imaging sont utilisés dans cette tâche. Dans la propriété OnClick du bouton, vous pouvez écrire le code suivant pour charger une image à la base de données. / / Créer un byte [] du fichier image qui est téléchargée imagelen int = Upload.PostedFile.ContentLength, byte [] picbyte = new byte [imagelen]; Upload.PostedFile.InputStream.Read (picbyte, 0, imagelen); / / Insérez l'image et l'image dans la base de données id SqlConnection conn = new SqlConnection (@ "donner à la chaîne de connexion ici ..."); try (conn.Open (); SqlCommand cmd = new SqlCommand (" insert into ImageTable "+" (ImageField, ImageID) values (@ pic, @ ImageID) ", conn); cmd.Parameters.Add (" @ pic ", picbyte); cmd.Parameters.Add (" @ ImageID ", lblImageID.Text), cmd. ExecuteNonQuery ();) finally (conn.Close ();) Vous pouvez aussi écrire le code ci-dessus dans une fonction et d'appeler cette fonction dans l'événement OnClick du bouton de téléchargement. Le code donné ci-dessus effectue les étapes suivantes dans le processus de l'insertion d'une image dans la base de données. 1. Obtenir le contenu longueur de l'image qui doit être téléchargé 2. Créer un byte [] pour stocker l'image 3. Lire les flux d'entrée de la file posted 4. Créer un objet de connexion 5. Ouvrez l'objet de connexion 6. Créer un objet de commande 7. Ajouter les paramètres à l'objet de commande 8. Exécuter la commande SQL en utilisant la méthode de ExecuteNonQuery l'objet de commande 9. Fermer l'objet de connexion Pour récupérer l'image de la base de données SQL, vous pouvez effectuer les étapes suivantes. 1. Créer un objet MemoryStream. Le code peut être quelque chose comme, MemoryStream mstream = new MemoryStream (); 2. Créer un objet Connection 3. Ouvrez la connexion à la base de données 4. Créer un objet de commande pour exécuter la commande pour récupérer l'image 5. Utilisez la commande de l'objet ExecuteScalar méthode pour récupérer l'image 6. Cast la sortie de la ExecuteScalar méthode à celle de byte [] byte [] image = (byte []) command.ExecuteScalar (); 7. Ecrire le flux mstream.Write (image, 0, image.Length) 8. Créer une image bitmap objet d'organiser le flux Bitmap bitmap = new Bitmap (stream); 9. Définir le type de contenu à l ' "image / gif" Response.ContentType = "image / gif"; 10. Utilisez la méthode Save de l'objet bitmap à l'image de sortie à la outputStream. bitmap.Save (Response.OutputStream, ImageFormat.Gif) 11. Fermer la connexion 12. Fermer le flux mstream.Close (); À l'aide des étapes ci-dessus, vous pouvez récupérer et afficher l'image de la base de données à la page Web. Vous pouvez utiliser ces algorithmes et de profiter de l ' «image» de type de données disponibles dans la base de données SQL Server 2000 pour stocker de petites images qui correspondent à un enregistrement dans la table de la base de données. Cette méthode évite de stocker la tâche pénible de suivre le chemin du répertoire web si les images sont stockées dans un dossier Web. A propos de l'auteur: Visite. NET Programmers Guide pour une introduction complète à. NET framework. En savoir plus sur ASP.NET, VB.NET, C # et d'autres technologies. ** Attention Webmasters / propriétaires de sites Web ** Vous pouvez réimprimer cet article sur votre site Web aussi longtemps que vous ne modifiez pas le contenu, et notamment notre boîte de ressources énumérées ci-dessus avec tous les liens intacts et hyperlinked correctement. Auteur: Balaji B