Byte olarak dosya okuyalım

Genellikle  ASP.NET tarafında kullanılan bir işlem olmasına rağmen ben özellikle POS cihazına logo atmak için ihtiyaç duydum. Amacımız veritabanına dosyayı byte olarak okuyup yazdırabilmek. Netten baltığımda aslında bir kaç örnek buldum ama içlerinden bana göre en kısası ve rahat çalışanı bu idi. Öncelikle sizlere dosya okuma kodunu veriyorum;

public static Byte[] GetByteReadfromFile(string file)
{
if (File.Exists(file) == false)
{
return null;
}
try
{
byte[] image = File.ReadAllBytes(file);
return image;
}
catch (Exception ex)
{
return null;
}
}

Bu fonksiyon sadece tek başına dosyadan okuma yapıp sonucu bir byte dizisi halinde döndürmektedir. Esas veritabanına kayıt işlemine gelindiğinde ise klasik bir kod ile vede işin içine birde MS-Sql Store Procedure katarak okunan bu değerin nasıl veritabanına yazdırıldığını görelim.

Store Procedure içeriği ;

USE [AbmC]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[spResimEkle]
@FPP_ID                 int,
@FPP_DATA               varbinary(999),
@FPP_FILENAME           varchar(150)
AS
 
BEGIN
INSERT INTO tblResimler(
FPP_DATA,
FPP_FILENAME
) VALUES (
@FPP_DATA,
@FPP_FILENAME
)
END

Şimdide C# tarafında klasik yöntemle nasıl veri gönderdiğimizi görelim.

public bool FtrParametreInsert(byte[] data, string fileName)
        {
            SqlCommand cmd = new SqlCommand();
            bool dsOk = false;
 
            try
            {
                cmd.Connection = OpenConnection();
                if (Process == 2)
                {
                    cmd.CommandText = "spResimEkle";
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.Add("@FPP_DATA", SqlDbType.VarBinary, data.Length).Value = data;
                    cmd.Parameters.Add("@FPP_FILENAME", SqlDbType.VarChar).Value = fileName;
                }
                cmd.ExecuteNonQuery();
                dsOk = true;
            }
            catch (SqlException ex)
            {
                WriteLog("HATA : FtrParametreInsert : " + Process.ToString() + " : " + ex.Message + " -> Query : " + cmd.CommandText);
            }
            finally
            {
                cmd = null;
                CloseConnection();
            }
            return dsOk;
        }
Etiket(ler): , , .Yer işareti koy Kalıcı Bağlantı.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir