ホームページ > データベース > mysql チュートリアル > C# を使用してデータベースに画像を保存するにはどうすればよいですか?

C# を使用してデータベースに画像を保存するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-04 18:13:41
オリジナル
445 人が閲覧しました

How Can I Store Images in a Database Using C#?

C# を使用してデータベースに画像を保存する

データベースにユーザー画像を保存することは、Web 開発における一般的なタスクです。 C# では、これにアプローチする方法がいくつかあります。 1 つの方法では、画像をバイト配列に変換し、それをバイト型のデータベース フィールドに保存します。

解決策:

このアプローチを実装するには、次のメソッド:

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

public static void PerisitImage(string path, IDbConnection connection)
{
    using (var command = connection.CreateCommand ())
    {
        Image img = Image.FromFile (path);
        MemoryStream tmpStream = new MemoryStream();
        img.Save (tmpStream, ImageFormat.Png); // change to other format
        tmpStream.Seek (0, SeekOrigin.Begin);
        byte[] imgBytes = new byte[MAX_IMG_SIZE];
        tmpStream.Read (imgBytes, 0, MAX_IMG_SIZE);

        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);
        command.ExecuteNonQuery ();
    }
}
ログイン後にコピー

このメソッド内:

  1. 画像クラスは、ファイルから画像をロードするために使用されます。
  2. MemoryStream は、画像をメモリに保存するために使用されます。
  3. Save メソッドは、画像を PNG 形式で MemoryStream に書き込むために使用されます。
  4. Seek メソッドは、MemoryStream の位置を先頭にリセットするために使用されます。
  5. Read メソッドは、MemoryStream の位置を読み取るために使用されます。画像バイトをバイト配列に格納します。
  6. DbType.Binary 型の IDataParameter は、バイト配列をデータベースに渡すために使用されます。
  7. CommandText は、画像を挿入する SQL クエリを指定するために使用されます。
  8. クエリの実行には ExecuteNonQuery メソッドが使用されます。

以上がC# を使用してデータベースに画像を保存するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート