Я пытаюсь прочитать все изображения из базы данных и сохранить их в виде файла jpg. Я создал функцию, в которой каждое изображение получит свой идентификатор в качестве имени. моя таблица выглядит так с данными.
ImageCode Image
DHS001 Long Binary Data
DHS002 Long Binary Data
DHS003 Long Binary Data
DHS004 Long Binary Data
DHS005 Long Binary Data
Я написал функцию, которая принимает два аргумента, имя изображения и двоичные данные, которые могут читать изображение, а затем сохранять его по определенному пути, но проблема в том, что она хорошо выполняет чтение и запись, но изображение остается прежним, но нумерация изображения все в порядке
public void _setimage(string imgCode, byte[] byteArrayIn)
{
try
{
MemoryStream ms = new MemoryStream(byteArrayIn, 0, byteArrayIn.Length);
ms.Write(byteArrayIn, 0, byteArrayIn.Length);
Image returnImage = Image.FromStream(ms, true);
finalImage.Save("D:\\" + imgCode + ".jpg", ImageFormat.Jpeg);
img = null;
finalImage = null;
ms.Close();
}
catch
{
}
}
И функция, которую я использовал для зацикливания изображений из базы данных, выглядит следующим образом:
public void createPhoto()
{
if (con.State == ConnectionState.Open) { con.Close(); }
SqlcommandString = "select ImageCode Image from ImageTable order by Barcode";
OleDbCommand cmd = new OleDbCommand(SqlcommandString, con);
con.Open();
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds, "Personaldetails");
OleDbDataReader dr = cmd.ExecuteReader();
byte[] bimg;
while (dr.Read())
{
bimg = (byte[])ds.Tables[0].Rows[0][1];
// this here is where i call the save image function to execute
_setimage(dr.GetValue(0).ToString(), bimg);
}
dr.Close();
cmd.Dispose();
con.Close();
}