我在C#中有一个动态图片框,它从datatable列中获取图片 数据表结构为:
ngAfterViewInit in footer component
我有一个字节数组来在图片框中显示图片:
public DataTable Pictures = new DataTable();
Pictures.Columns.Add("id", typeof(bool));
Pictures.Columns.Add("filebytes", typeof(SqlBinary));
,以下代码用于显示图像:
byte[] ImageBinary;
它从Openfile对话框中获取图像
我想从数据表中为Picturebox分配一个值,我的问题是当我更改如下代码时:
PictureBox a = new PictureBox();
a.Location = new Point(100, 90);
a.Size = new Size(25, 25);
a.SizeMode = PictureBoxSizeMode.StretchImage;
groupBox3.Controls.Add(a);
MemoryStream ms = null;
Image img = null;
Tools b = new Tools();
ImageBinary = b.CreateImageBinary(openFileDialog1.FileName);
ms = new MemoryStream(ImageBinary);
Pictures.Rows.Add(new object[] { i, ImageBinary });
img = Image.FromStream(ms);
a.Image = img;
ms.Close();
它让我看到错误,例如:
无法将类型为'system.data.sqltypes.sqlbinary'的对象强制转换为类型 'system.byte []'
我很困惑,请帮助我
答案 0 :(得分:1)
您可以使用DqlBinary.Explicit operator
public static explicit operator byte[] (System.Data.SqlTypes.SqlBinary x);
我的建议是将using System.Data.SqlTypes;
导入添加到声明显式运算符的.cs
文件的开头。
在编译器找不到命名空间的情况下,请查看包含该文件的dll的文档。