Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.04.2024, 20:06   #1
щука
Новичок
Джуниор
 
Регистрация: 25.04.2024
Сообщений: 6
По умолчанию Как извлечь изображение из БД Access и отобразить его в pictureBox на C++ (winforms)

Изображение находится в поле с типом данных "Поле объекта OLE" и именем "Image". Формат изображения .jpg.
Код:
private: System::Void MyForm10_Load(System::Object^ sender, System::EventArgs^ e) {
String^ connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Database.accdb;Persist Security Info=False;";
String^ query = "SELECT Image FROM [Database]";

OleDbConnection^ connection = gcnew OleDbConnection(connectionString);
OleDbCommand^ command = gcnew OleDbCommand(query, connection);

try
{
    connection->Open();
    OleDbDataReader^ reader = command->ExecuteReader();

    if (reader->HasRows)
    {
        reader->Read();

        if (!reader->IsDBNull(reader->GetOrdinal("Image")))
        {
            System::IO::Stream^ stream = reader->GetStream(reader->GetOrdinal("Image"));

            try
            {
                System::Drawing::Image^ image = System::Drawing::Image::FromStream(stream);
                pictureBox1->Image = image;
            }
            catch (Exception^ ex)
            {
                MessageBox::Show("Error loading image: " + ex->Message);
            }
            finally
            {
                stream->Close();
            }
        }
        else
        {
            MessageBox::Show("Image field is null");
        }
    }
    else
    {
        MessageBox::Show("No rows found");
    }

    reader->Close();
}
catch (Exception^ ex)
{
    MessageBox::Show("Error: " + ex->Message);
}
finally
{
    connection->Close();
}
}
Выдает ошибку "Parameter is not valid". Как исправить код, чтобы все заработало? Или может есть другие способы отобразить изображение из Access в pictureBox?
щука вне форума Ответить с цитированием
Старый 26.04.2024, 08:12   #2
Алексей1153
фрилансер
Участник клуба
 
Регистрация: 11.10.2019
Сообщений: 1,018
По умолчанию

щука, это не C++
Алексей1153 вне форума Ответить с цитированием
Старый 26.04.2024, 11:37   #3
щука
Новичок
Джуниор
 
Регистрация: 25.04.2024
Сообщений: 6
По умолчанию

это winforms

Последний раз редактировалось щука; 26.04.2024 в 11:40. Причина: не туда нажал
щука вне форума Ответить с цитированием
Старый 26.04.2024, 11:39   #4
щука
Новичок
Джуниор
 
Регистрация: 25.04.2024
Сообщений: 6
По умолчанию

Алексей1153, я же написал, что это с++, но не консольное приложение, а winforms. конечно, там будут некоторые отличия. и спасибо за рекламу, если бы у меня были деньги, я не задавал бы вопрос на сайте, а сразу же нашел того, кто выполнит мою задачу.
щука вне форума Ответить с цитированием
Старый 26.04.2024, 12:34   #5
Алексей1153
фрилансер
Участник клуба
 
Регистрация: 11.10.2019
Сообщений: 1,018
По умолчанию

Цитата:
Сообщение от щука Посмотреть сообщение
я же написал, что это с++
повторяю - это не C++. Это другой язык
Алексей1153 вне форума Ответить с цитированием
Старый 26.04.2024, 14:03   #6
щука
Новичок
Джуниор
 
Регистрация: 25.04.2024
Сообщений: 6
По умолчанию

щука,
Алексей1153, может вы тогда скажете какой? Вы когда-нибудь работали в конструкторе windows forms Visual Studio? у вас в профиле написано, что вы берете работы по с++, но в то же время не работали с net framework.
щука вне форума Ответить с цитированием
Старый 26.04.2024, 15:32   #7
Алексей1153
фрилансер
Участник клуба
 
Регистрация: 11.10.2019
Сообщений: 1,018
По умолчанию

Цитата:
Сообщение от щука Посмотреть сообщение
может вы тогда скажете какой
нет, точно не подскажу Что-то на платформе .NET

net framework никак не связан с C++, к счастью
Алексей1153 вне форума Ответить с цитированием
Старый 26.04.2024, 20:06   #8
Vapaamies
Просветитель
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,844
По умолчанию

Цитата:
Сообщение от Алексей1153 Посмотреть сообщение
net framework никак не связан с C++, к счастью
С дуба рухнул? С луны упал?

Я, вот, заинтересовался непонятными символами в коде и нагуглил:
Цитата:
This is C++/CLI and the caret is the managed equivalent of a * (pointer) which in C++/CLI terminology is called a 'handle' to a 'reference type' (since you can still have unmanaged pointers).
Теперь буду знать.

А C++ для .NET всегда был, неизменно вызывая жгучую тягу у наиболее неподготовленных программистов. Эффект Даннинга-Крюгера в программировании — хочется быть святее круче Папы Римского.
Vapaamies вне форума Ответить с цитированием
Старый 26.04.2024, 20:07   #9
Алексей1153
фрилансер
Участник клуба
 
Регистрация: 11.10.2019
Сообщений: 1,018
По умолчанию

ещё один фантазёр
Алексей1153 вне форума Ответить с цитированием
Старый 26.04.2024, 20:30   #10
щука
Новичок
Джуниор
 
Регистрация: 25.04.2024
Сообщений: 6
По умолчанию

ну да, у меня в универе наверное свой новый язык придумали эти фантазеры и теперь задают задания, которые ни один программист не может сделать
щука вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузить изображение из БД в PictureBox C# SeregaVili Помощь студентам 2 16.11.2015 00:59
Не полуается отобразить растровое изображение в QGraphicsView Petrum Qt и кроссплатформенное программирование С/С++ 5 17.10.2012 13:37
Как отобразить в окне DDS изображение crymchanin Общие вопросы C/C++ 0 15.02.2012 17:53
WinForms PictureBox VC++ Drag&Drop _Alerter_ Windows Forms 4 27.05.2011 10:38
Как перекинуть изображение из PictureBox в Bitmap(C#) Дамир Общие вопросы .NET 1 23.10.2009 07:15