Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否有方法将Datatable的System.Data.SqlTypes.SqlBinary转换为System.Byte[]类型?_C#_Winforms_Datatable_Sql Types - Fatal编程技术网

C# 是否有方法将Datatable的System.Data.SqlTypes.SqlBinary转换为System.Byte[]类型?

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; 以下代码用于显示图

我在C#中有一个动态picturebox,它从datatable的一列中获取图片 数据表结构是:

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);