arvindispra Ответов: 1

Как отобразить изображение из datagridview в picturebox ?


Я сохранил изображение в базе данных sql, я получил его в datagridview теперь я хочу показать это в поле изображения. Все данные успешно заполняются в текстовом поле, но изображение не может получить изображение в графическом поле.
Заранее спасибо

Что я уже пробовал:

частная dataGridView1_RowHeaderMouseClick недействительным(объект отправителя, DataGridViewCellMouseEventArgs е)
{
ID = конвертировать.ToInt32(dataGridView1.Ряды[электронный.Параметр rowindex].Ячейки[0].Значение.Метод toString());
combo_Class.Текст = dataGridView1.Ряды[электронный.Параметр rowindex].Клетки[1].Значение.Метод toString();
txt_Roll.Текст = dataGridView1.Ряды[электронный.Параметр rowindex].Клеток[2].Значение.Метод toString();
txt_Name.Текст = dataGridView1.Ряды[электронный.Параметр rowindex].Клеток[3].Значение.Метод toString();
txt_father.Текст = dataGridView1.Ряды[электронный.Параметр rowindex].Клеток[4].Значение.Метод toString();
combo_Gender.Текст = dataGridView1.Ряды[электронный.Параметр rowindex].Клеток[5].Значение.Метод toString();
dateTimePicker1.Текст = dataGridView1.Ряды[электронный.Параметр rowindex].Клеток[6].Значение.Метод toString();
txt_Contact.Текст = dataGridView1.Ряды[электронный.Параметр rowindex].Клеток[7].Значение.Метод toString();
//имя picturebox1.Изображение = dataGridView1.Ряды[электронный.Параметр rowindex].Клеток[8].Значение.Метод toString();


}

1 Ответов

Рейтинг:
6

OriginalGriff

Не пытайтесь преобразовать его в строку!
То, что вы получаете от БД для изображения, - это массив байтов, который DGV будет отображать как изображение.
Чтобы использовать его как изолированное изображение, вам нужно преобразовать байты в Изображение с помощью потока памяти:

byte[] bytes = (byte[]) myDataGridView.Rows[rowAddr].Cells[cellAddr].Value;
MemoryStream ms = new MemoryStream(bytes);
myPictureBox.Image = Image.FromStream(ms);


Member 13220754

Привет.
Я использую этот код, но ошибка в изображении ("изображение.FromStream(МС)
Вы не могли бы мне помочь?

OriginalGriff

Дай угадаю ... ошибка - это исключение "параметр недопустим"?

Это означает, что ваш код, скорее всего, широко открыт для SQL-инъекции, которая позволит любому пользователю повредить или уничтожить вашу базу данных, когда ему этого захочется. Никогда не объединяйте строки для построения SQL-команды. Это оставляет вас широко открытыми для случайной или преднамеренной атаки SQL-инъекции, которая может уничтожить всю вашу базу данных. Вместо этого используйте параметризованные запросы.

Теперь, чтобы исправить эту проблему, смотрите здесь:

https://www.codeproject.com/Tips/465950/Why-do-I-get-a-Parameter-is-not-valid-exception-wh

И читайте все это, а не просто просматривайте основные моменты и копируйте код...

Member 13220754

У меня есть этот код для этих колланов
txtIDMovie.Текст = dgvMovies.Ряды[электронный.Параметр rowindex].Ячейки[0].Значение.Метод toString();
txtNameMovie.Текст = dgvMovies.Ряды[электронный.Параметр rowindex].Клетки[1].Значение.Метод toString();
txtRealizador.Текст = dgvMovies.Ряды[электронный.Параметр rowindex].Клеток[2].Значение.Метод toString();
txtCatMovies.Текст = dgvMovies.Ряды[электронный.Параметр rowindex].Клеток[3].Значение.Метод toString();
txtAnoMovie.Текст = dgvMovies.Ряды[электронный.Параметр rowindex].Клеток[4].Значение.Метод toString();
txtClassIdade.Текст = dgvMovies.Ряды[электронный.Параметр rowindex].Клеток[5].Значение.Метод toString();
txtClassIMDB.Текст = dgvMovies.Ряды[электронный.Параметр rowindex].Клеток[6].Значение.Метод toString();
cbFormato.Текст = dgvMovies.Ряды[электронный.Параметр rowindex].Клеток[7].Значение.Метод toString();

И я тестировал свой код для показа изображения в окне изображения

OriginalGriff

Перейдите по ссылке, которую я вам дал, и прочтите ее. Ваш код даже не пытается отобразить изображение ... или показать какие-либо манипуляции с базой данных ...