Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menyimpan Imej dalam Pangkalan Data Menggunakan C#?

Bagaimanakah Saya Boleh Menyimpan Imej dalam Pangkalan Data Menggunakan C#?

Susan Sarandon
Susan Sarandonasal
2025-01-04 18:13:41417semak imbas

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

Menggunakan C# untuk Menyimpan Imej dalam Pangkalan Data

Menyimpan imej pengguna dalam pangkalan data ialah tugas biasa dalam pembangunan web. Dalam C#, terdapat beberapa cara untuk mendekati ini. Satu kaedah melibatkan menukar imej kepada tatasusunan bait dan menyimpannya ke medan pangkalan data jenis bait.

Penyelesaian:

Untuk melaksanakan pendekatan ini, anda boleh menggunakan kaedah berikut:

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

Dalam kaedah ini:

  1. Kelas Imej digunakan untuk memuatkan imej daripada fail.
  2. MemoryStream digunakan untuk menyimpan imej dalam ingatan.
  3. Kaedah Simpan digunakan untuk menulis imej ke MemoryStream dalam format PNG.
  4. Kaedah Seek digunakan untuk menetapkan semula kedudukan MemoryStream ke permulaan.
  5. Kaedah Baca digunakan untuk membaca bait imej ke dalam tatasusunan bait.
  6. IDataParameter jenis DbType.Binary digunakan untuk menghantar tatasusunan bait ke pangkalan data.
  7. CommandText digunakan untuk menentukan pertanyaan SQL untuk memasukkan imej ke dalam pangkalan data.
  8. Kaedah ExecuteNonQuery digunakan untuk melaksanakan pertanyaan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyimpan Imej dalam Pangkalan Data Menggunakan C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn