C# 是否有方法将Datatable的System.Data.SqlTypes.SqlBinary转换为System.Byte[]类型?
我在C#中有一个动态picturebox,它从datatable的一列中获取图片 数据表结构是:C# 是否有方法将Datatable的System.Data.SqlTypes.SqlBinary转换为System.Byte[]类型?,c#,winforms,datatable,sql-types,C#,Winforms,Datatable,Sql Types,我在C#中有一个动态picturebox,它从datatable的一列中获取图片 数据表结构是: public DataTable Pictures = new DataTable(); Pictures.Columns.Add("id", typeof(bool)); Pictures.Columns.Add("filebytes", typeof(SqlBinary)); 我有一个字节数组,用于在picturebox中显示图片: byte[] ImageBinary; 以下代码用于显示图
public DataTable Pictures = new DataTable();
Pictures.Columns.Add("id", typeof(bool));
Pictures.Columns.Add("filebytes", typeof(SqlBinary));
我有一个字节数组,用于在picturebox中显示图片:
byte[] ImageBinary;
以下代码用于显示图像:
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();
它从Openfiledialog获取图像
我想从datatable为picturebox分配一个值我的问题是当我更改代码时,如下所示:
ImageBinary = (byte[])Pictures.Rows[sm][1]; //sm is a variable to specific a row of datatable
这让我产生了如下错误:
无法将类型为“system.data.sqltypes.sqlbinary”的对象强制转换为类型
'系统字节[]'
我很困惑,请帮帮我你可以用
我的建议是使用System.Data.SqlTypes添加代码>导入在声明显式运算符的.cs
文件的开头
检查文档中包含它的DLL,以防编译器找不到名称空间。您能说清楚吗?我应该用什么?上面的代码?像现在一样添加我提到的using和cast。我添加了它。但问题是,当我使用显式运算符时,它告诉我用户定义的转换必须转换为或转换为encloseyng类型
public static explicit operator byte[] (System.Data.SqlTypes.SqlBinary x);