Итак, я пытаюсь преобразовать массив байтов в изображение, но получаю эту ошибку:
System.ArgumentException: «Параметр недействителен». Байт [] поступает из базы данных на SQL-сервере, где тип данных - «изображение».
Я уже испробовал все найденные мной решения, предложенные в других вопросах в StackOverflow, и они не помогли мне;Вот мой код:
//biblioteca.herramientas is where I make the connection with the server
DataSet dataset_Image;
dataset_Image = Biblioteca.Herramientas(string.Format("SELECT * FROM Image WHERE id_Image = " + 1));
array = (byte[])dataset_Image.Tables[0].Rows[0]["image"];
public byte[] TheImage
{
set
{
theImage = ImageConversor.ByteArrayToImage(value);
PictureBox2.Image = theImage;
}
}
Вот где у меня ошибка:
public class ImageConversor
{
public static Image ByteArrayToImage(byte[] byteArrayIn)
{ //HERE THE ERROR APPEARS
MemoryStream ms = new MemoryStream(byteArrayIn);
Image returnImage = Image.FromStream(ms);
return returnImage;
}
}
The following picture is the SQL table that I am accessing to:
И это все, если вам нужна дополнительная информация, я поделюсь ею, спасибо за ваше время, надеюсь, у вас хороший день. (:
РЕДАКТИРОВАТЬ: Код работает нормально, если я добавляю картинку непосредственно из SQLS, меняя столбец «изображение» (где хранится картинка) тип данных с «изображение» на «varbinary»(MAX) ", а затем используйте следующий код для вставки изображения:
insert into Image select * from openrowset (bulk N'picture directory', single_blob) as image
Проблема в том, что я не могу использовать это для добавления изображения, но я не знаю, может быть, это помогает решить эту проблему: /