Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 18.11.2014
Сообщений: 10

Необработанное исключение типа "System.ArgumentException" в System.Drawing.dll

18.11.2014, 12:31. Показов 2853. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Возникла проблема с загрузкой изображения из базы данных. Вот собственно код:
C#
1
2
3
4
                mybdxDataSet.Таблица1Row ur = (mybdxDataSet.Таблица1Row)(drw.Row);
                MemoryStream ms = new MemoryStream(ur.Фото);
                фотоPictureBox.Image = Image.FromStream(ms, true, true);
                ms.Close();
В этой строке "фотоPictureBox.Image = Image.FromStream(ms, true, true);" выдает ошибку - "Необработанное исключение типа "System.ArgumentException" в System.Drawing.dll"


Помогите пожалуйста разобраться в чем дело.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.11.2014, 12:31
Ответы с готовыми решениями:

Необработанное исключение типа "System.InvalidOperationException" в System.Data.dll
В программировании нуб. Помогите исправить ошибку. Делал всё по видео-уроку. Но почему то при заполнении id и name, выдаёт: ...

MS SQL Необработанное исключение типа "System.Data.SqlClient.SqlException" в System.Data.dll
Что не так? Необработанное исключение типа "System.Data.SqlClient.SqlException" в System.Data.dllДополнительные сведения: Нарушено...

Необработанное исключение типа "System.Data.OleDb.OleDbException" в System.Data.dll
Добрый день, нашел код для вывода двух связанных таблиц данных в один элемент DataGridView. Переделал под себя и выдает такую ошибку: ...

14
4 / 4 / 2
Регистрация: 06.04.2014
Сообщений: 26
18.11.2014, 17:57
так не делается, храни в базе данных только путь к картинке.
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
18.11.2014, 18:23
Почему не делается? Можно и в БД хранить.

Добавлено через 6 минут
Какая БД? Как картинка туда была записана?
C#
1
2
MemoryStream ms = new MemoryStream((Byte[])ur.Фото);
фотоPictureBox.Image = Image.FromStream(ms);
0
0 / 0 / 0
Регистрация: 18.11.2014
Сообщений: 10
18.11.2014, 20:28  [ТС]
БД создана с помощью Access. Картинка загружена стандартным способом добавления объекта из файла.

Добавлено через 6 минут
C#
1
 this.фотоPictureBox.DataBindings.Add(new System.Windows.Forms.Binding("Image", this.таблица1BindingSource, "Фото", true));
Когда происходит привязка выше описанным образом, форма сама нормально разбирается, с загрузкой изображения в PictureBox. А когда я пытаюсь в ручную вытащить картинку, компилятор выдает исключение.
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
18.11.2014, 20:31
Добавление своим кодом или через сам Access? Если второе - то работать не будет (насколько я знаю). Твоя программа должна сама и сохранять в БД и читать, т. к. Access туда какой-то заголовок добавляет, который потом мешает.
0
0 / 0 / 0
Регистрация: 18.11.2014
Сообщений: 10
18.11.2014, 20:37  [ТС]
nmcf, Еще я могу обращаться к другим полям БД (текстовым, числовым) и никаких проблем, а вот изображение не могу получить.

Добавлено через 40 секунд
nmcf, Через сам Access.

Добавлено через 1 минуту
nmcf, Дело в том что программа, автоматически с помощью привязки общается же с БД. А в ручную не получается. Значит дело не в заголовке.
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
18.11.2014, 21:00
Вот это drw.Row что? Попробуй для начала явно указать номер строки и столбца таблицы, где хранится картинка.
0
0 / 0 / 0
Регистрация: 18.11.2014
Сообщений: 10
18.11.2014, 21:35  [ТС]
Извиняюсь, вот недостающая строка:
C#
1
DataRowView drw = (DataRowView)this.таблица1BindingSource.Current;
Добавлено через 19 минут
пробовал еще таким способом
C#
1
Image image = Image.FromStream(new MemoryStream((byte[])таблица1DataGridView[4, 3].Value));
, где 4 номер столбца, 3- номер строки, но выдает то же исключение.
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
18.11.2014, 21:49
Нет, нужно не из DataGridView, а из DataTable брать, куда ты загружаешь данные из БД.
От текущей строки dgv перейди к связанной строке DataTable.
0
0 / 0 / 0
Регистрация: 18.11.2014
Сообщений: 10
19.11.2014, 19:54  [ТС]
nmcf, Хм я могу обратиться только к таблица1BindingSource, таблица1DataGridView, таблица1TableAdapter. У меня в выборе DataTable нет. Во всяком случае это все что мне доступно из Form1.cs.

Добавлено через 9 минут
Возможно я не так понял вас, вот попробовал так

C#
1
2
3
4
object objstr=таблица1DataGridView.CurrentRow.DataBoundItem;
            mybdxDataSet.Таблица1Row ur = (mybdxDataSet.Таблица1Row)objstr;
            MemoryStream ms = new MemoryStream(ur.Фото);
            фотоPictureBox.Image = Image.FromStream(ms, true, true);
,
но получил еще одно исключение Необработанное исключение типа "System.NullReferenceException" в System.Data.dll

Дополнительные сведения: Ссылка на объект не указывает на экземпляр объекта.

Добавлено через 39 секунд
Приведите, если не сложно, пример кода, чтобы было понятно.

Добавлено через 21 час 45 минут
nmcf Бд создавал в access. Картинку загружал стандартным образом с помощью функции добавления объекта из файла.

Добавлено через 1 минуту
Суть в том, что Майкрософт не может обеспечить нормального функционирования своих продуктов(даже между собой).
Все оказалось банально просто: изображения, которые подписаны в БД, созданной в Access как битмап или пайнтбраш, просто не доступны, для интерфейса работы с БД, предложенной в windows forms. Оказалось изображение должно быть подписано в БД, созданной в Access как "ДВОИЧНЫЕ ДАННЫЕ". Поэтому код совсем не причем, и вполне рабочий.

C#
1
2
3
4
5
DataRowView drw = (DataRowView)таблица1BindingSource.Current;
                mybdxDataSet.Таблица1Row ur = (mybdxDataSet.Таблица1Row)(drw.Row);
                MemoryStream ms = new MemoryStream(ur.Фото);
                фотоPictureBox.Image = Image.FromStream(ms, true, true);
                ms.Close();
Важно что данные в бд должны быть подписаны именно как ДВОИЧНЫЕ ДАННЫЕ!!! Тему можно считать закрытой.
P.S. Жаль что Майкрософт не может сделать ровный интерфейс, хотя бы для взаимодействия между своими же приложениями.
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
19.11.2014, 21:18
Двоичные данные? У тебя какая версия Access? У меня тип поля называется "Поле объекта OLE".
0
0 / 0 / 0
Регистрация: 18.11.2014
Сообщений: 10
20.11.2014, 08:00  [ТС]
nmcf, Читай внимательно, еще раз, что я написал, я про тип поля не писал ничего, так то у меня тоже "Поле объекта OLE".
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
20.11.2014, 10:01
Так в каком месте это задаётся (двоичные данные)?
0
0 / 0 / 0
Регистрация: 18.11.2014
Сообщений: 10
20.11.2014, 10:58  [ТС]
nmcf, Вот выбираешь ты добавить объект, щелкая правой кнопкой мыши по полю объекта OLE в твоей БД, и после добавления у тебя должно быть написано "двоичные данные".
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
20.11.2014, 11:51
Ясно. Моя программа сама добавляет и сама считывает, поэтому такого нет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.11.2014, 11:51
Помогаю со студенческими работами здесь

Необработанное исключение типа "System.Data.SqlClient.SqlException" в System.Data.dll
Код формы: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; ...

Необработанное исключение типа "System.Data.SqlClient.SqlException" в System.Data.dll
Всем привет! Я новичок в программировании. Собственно говоря учусь основам программирования и.т.д. Проблема в том, что я хочу создать...

Необработанное исключение типа "System.Data.SqlClient.SqlException" в System.Data.dll
Доброго времени суток ! Есть программа, работала нормально. Но как только в соединениях я поменял имя сервера SQL , возникла ошибка при...

Необработанное исключение типа "System.Data.SqlClient.SqlException" в System.Data.dll
Всем привет, не очень селен в этом!!! как мне избавится от этой ошибки? Создал базу в SQL, затем добавил в VS2015, Необработанное...

Исключение типа "System.Data.SqlClient.SqlException" возникло в System.Private.CoreLib.dll, но не было обработано в коде
Здравствуйте , делал программу для внесения данных в SQL , не могу найти ошибку в данном коде. При вводе данных выдается исключение:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru