Dapper ile SQL Server üzerine resim kayıt etme
Dapper ile SQL Server’a resim kaydetmek için, resim verisini byte[] formatında almanız ve SQL’deki bir VARBINARY kolonuna kaydetmeniz gerekir. Aşağıda temel adımları ve örnek bir kod parçasını bulabilirsiniz:
Adımlar:
Resmi Byte Dizisine Dönüştürme: Resmi bir byte[] formatına dönüştürmeniz gerekiyor. Bunun için MemoryStream kullanabilirsiniz.
SQL Server’da Kolon Tipini Ayarlama: Resim verisinin saklanacağı kolonun tipi VARBINARY(MAX) olmalıdır.
Dapper ile Kaydetme: Dapper’da resim verisini SQL parametresi olarak geçerek kaydedebilirsiniz.
Örnek Kod:
1. Veritabanı Tablo Yapısı:
CREATE TABLE Images ( Id INT IDENTITY PRIMARY KEY, ImageData VARBINARY(MAX), ImageName NVARCHAR(255) );
2. Resmi Byte Dizisine Dönüştürme:
public byte[] ConvertImageToByteArray(string imagePath) { using (var stream = new MemoryStream()) { using (var image = Image.FromFile(imagePath)) { image.Save(stream, image.RawFormat); } return stream.ToArray(); } }
3. Dapper ile Resim Kaydetme:
public void SaveImage(string connectionString, string imagePath, string imageName) { byte[] imageBytes = ConvertImageToByteArray(imagePath); string query = "INSERT INTO Images (ImageData, ImageName) VALUES (@ImageData, @ImageName)"; using (var connection = new SqlConnection(connectionString)) { connection.Open(); connection.Execute(query, new { ImageData = imageBytes, ImageName = imageName }); } }
4. Kullanımı:
string connectionString = "Server=.;Database=MyDatabase;Trusted_Connection=True;"; string imagePath = @"C:\Images\example.jpg"; string imageName = "Example Image"; SaveImage(connectionString, imagePath, imageName);
Eğer bu resmi daha sonra okumak ve göstermek isterseniz, benzer bir yaklaşım izleyerek SELECT
sorgusu ile resmi byte[]
olarak alıp, görüntülemek için tekrar bir Image
nesnesine dönüştürebilirsiniz.
Bir yanıt yazın