Maison >base de données >tutoriel mysql >Comment enregistrer des images dans une base de données en utilisant C# ?

Comment enregistrer des images dans une base de données en utilisant C# ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-03 00:48:39616parcourir

How to Save Images in a Database using C#?

Enregistrement des images dans une base de données en utilisant C#

Lors du stockage des images utilisateur dans une base de données, il est essentiel de les convertir dans un format binaire compatible avec stockage de base de données. En C#, vous pouvez y parvenir en suivant les étapes suivantes :

  1. Créer un tableau d'octets pour les données d'image :
    Convertir l'image utilisateur en un tableau d'octets. Cette étape consiste à lire le fichier image à l'aide de la classe File ou Image et à l'enregistrer sous forme de tableau d'octets.
  2. Utiliser une requête paramétrée avec des données binaires :
    Pour éviter les attaques par injection SQL et améliorer performances, utilisez une requête paramétrée avec un paramètre de type DbType.Binary. Ce paramètre contiendra le tableau d'octets représentant les données de l'image.
  3. Exécutez la requête pour enregistrer l'image :
    Exécutez la requête paramétrée pour insérer les données de l'image dans la base de données. Les données binaires seront stockées dans la colonne spécifiée, préservant les informations de l'image.

Exemple de code :

using System.Drawing;
using System.Drawing.Imaging;
using System.Data;

public static void SaveImage(string path, IDbConnection connection)
{
    using (var command = connection.CreateCommand())
    {
        // Read the image file and convert it to a byte array
        Image img = Image.FromFile(path);
        MemoryStream tmpStream = new MemoryStream();
        img.Save(tmpStream, ImageFormat.Png);
        tmpStream.Seek(0, SeekOrigin.Begin);
        byte[] imgBytes = new byte[MAX_IMG_SIZE];
        tmpStream.Read(imgBytes, 0, MAX_IMG_SIZE);

        // Create a binary parameter for the image data
        command.CommandText = "INSERT INTO images(payload) VALUES (:payload)";
        IDataParameter par = command.CreateParameter();
        par.ParameterName = "payload";
        par.DbType = DbType.Binary;
        par.Value = imgBytes;
        command.Parameters.Add(par);

        // Execute the query to save the image
        command.ExecuteNonQuery();
    }
}

Ce code montre comment convertir une image en un tableau d'octets, créez un paramètre binaire et exécutez une requête paramétrée pour stocker les données d'image dans une base de données en utilisant C#.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn