将背景图像分配给数据库中的按钮

本文关键字:按钮 数据库 背景 图像 分配 | 更新日期: 2023-09-27 18:28:37

我是C#的新手,正在制作一个从数据库存储值创建按钮的表单。我已经在表中存储了图像,我不知道如何以这种方式添加图像

这是代码

SqlDataAdapter adapt = new SqlDataAdapter("select * from Items order by name", sc);
DataTable dt = new DataTable();
adapt.Fill(dt);
for (int i = 0; i < dt.Rows.Count; i++)
{
    Button btn = new Button();
    btn.Name = "btn" + dt.Rows[i][1];
    btn.Tag = dt.Rows[i][2];
    btn.BackgroundImage = dt.Rows[i][5];
    btn.Text = dt.Rows[i][1].ToString();
    btn.Font = new Font("Arial", 12f, FontStyle.Bold);
    btn.Height = 60;
    btn.Width = 120;
    flowLayoutPanel1.Controls.Add(btn);
}

出现此错误

错误5无法将类型"object"隐式转换为"System.Drawing.Image"。存在显式转换(是否缺少演员阵容?)

将背景图像分配给数据库中的按钮

我建议将包含图像的列转换为字节,然后执行以下操作:(或者它也适用于图像。我不确定

byte[] data = (byte[]) dt.Rows[i][5];
MemoryStream ms = new MemoryStream(data);
btn.BackgroundImage = Image.FromStream(ms);

此外,这个问题的答案有多个答案,您可以使用