Как извлечь BinaryCode из SQL Server в PictureBox - PullRequest
0 голосов
/ 24 ноября 2018

У меня есть личная база данных, в которой есть столбец для вставки картинок.Я полностью преобразовал свою картинку из PictureBox в двоичный код, и когда я захожу в базу данных, я могу правильно видеть двоичные коды.Я также запрограммировал функцию преобразования двоичных кодов в изображение и установил обработчик событий, чтобы пользователь мог щелкнуть ячейку в DataGridView, и все значения будут отображаться в определенных элементах управления.

Сначала я получил ошибку, и эта ошибка была примерно такой:

Невозможно преобразовать объект в байт []

Я решил эту проблему с помощьюпрограммирование функции и преобразование двоичного объекта в byte [], но теперь, когда я пытаюсь преобразовать byte[] (двоичный массив) в изображение, я сталкиваюсь с ошибкой и не могу решить эту проблему.и проблема:

Параметр недействителен.

Вот мой код:

Преобразование изображения в двоичный файл

byte[] ConvertImageToBinary(Image img)
{
        using (MemoryStream ms = new MemoryStream())
        {
            img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
            return ms.ToArray();
        }
}

Конвертировать объект в двоичный файл

byte[] ObjectToByteArray(object obj)
{
        if (obj == null)
            return null;

        BinaryFormatter bf = new BinaryFormatter();

        using (MemoryStream ms = new MemoryStream())
        {
            bf.Serialize(ms, obj);
            return ms.ToArray();
        }
}

Конвертировать двоичный код в изображение

Image ConvertBinaryToImage(byte[] data)
    {
        using (MemoryStream ms = new MemoryStream(data))
        {
            return Image.FromStream(ms);
        }
    }

И, наконец, вот мой код в

private void DataCustomer_CellContentClick(object sender, DataGridViewCellEventArgs e):

if (DataCustomer.CurrentRow.Cells[9].Value == null)
    PictureCustomer.Image = null;
else
{
    byte[] ImageByte = ObjectToByteArray(DataCustomer.CurrentRow.Cells[9].Value);
    PictureCustomer.Image = ConvertBinaryToImage(ImageByte);
}

Любое полезное предложение будет оценено.

Заранее спасибо

...