Ошибка: «Параметр неверен» при преобразовании байта [] в изображение - PullRequest
0 голосов
/ 08 ноября 2019

Итак, я пытаюсь преобразовать массив байтов в изображение, но получаю эту ошибку:

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:

SQL table

И это все, если вам нужна дополнительная информация, я поделюсь ею, спасибо за ваше время, надеюсь, у вас хороший день. (:

РЕДАКТИРОВАТЬ: Код работает нормально, если я добавляю картинку непосредственно из SQLS, меняя столбец «изображение» (где хранится картинка) тип данных с «изображение» на «varbinary»(MAX) ", а затем используйте следующий код для вставки изображения:

insert into Image select * from openrowset (bulk N'picture directory', single_blob) as image

Проблема в том, что я не могу использовать это для добавления изображения, но я не знаю, может быть, это помогает решить эту проблему: /

...