c# загрузка изображений из таблицы данных в Picturebox - PullRequest
0 голосов
/ 20 апреля 2020

Я использую следующий код для загрузки данных на мою метку string , это работает.

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

pc [i] .image = dt.Rows [i] [1]

Любая помощь будет оценена.

    private void button1_Click(object sender, EventArgs e)
    {
        Label[] lbl = { label1, label2, label3, label4, label5};
        PictureBox[] pc = { pictureBox1, pictureBox2, pictureBox3, pictureBox4, pictureBox5 };

        DataTable dt = new DataTable();
        dt.Columns.Add("degree", typeof(string));
        dt.Columns.Add("icon", typeof(Image));
        {
            ----
            dt.Rows.Add(new object[] { a, b });
        }

        for (int i = 0; i < 10; i++)
        {
            lbl[i].text= dt.Rows[i][0].ToString();
            pc[i].image=dt.Rows[i][1]?????
        }
    }
    ```

Ответы [ 2 ]

0 голосов
/ 20 апреля 2020

Попробуйте явно привести как Image ...

DataTable dt = new DataTable();
dt.Columns.Add("degree", typeof(string));
dt.Columns.Add("icon", typeof(Image));
{
    dt.Rows.Add(new object[] { "test", Image.FromFile(@"c:\atom-icon.png") });
}

PictureBox[] pc = { pictureBox1 };
pc[0].Image = (Image)dt.Rows[0][1];
0 голосов
/ 20 апреля 2020

Предполагается, что вы храните изображения в виде байтов в базе данных. Затем вам нужно конвертировать байты в изображение.

byte[] ba = (byte[])dt.Rows[i][1];
System.IO.MemoryStream ms = new System.IO.MemoryStream(ba);
Image img = Image.FromStream(ms);
pc[i].Image = img;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...