如何转换二进制<>到字节数组
本文关键字:到字节 数组 二进制 何转换 转换 | 更新日期: 2023-09-27 18:03:26
public byte[] ReturndbImage()
{
Image_table table = new Image_table();
var row = from s in db.Image_tables
where s.Id == 1
select s.imag;
byte[] b = null ;
int cou = row.Count();
b = (byte[])(row).Single().ToArray();
return b;
}
嗨,我正在使用微软visual studio 2013,我正试图使用linq在数据库中存储图像。我无法获得图像。我的图像存储在数据库varbinary<> .我无法转换回二进制[]。我在数据库中有记录,它仍然给空值。
您应该从数据库返回图像作为Image
而不是byte[]
。
如果s.imag
是VARBINARY
类型,那么LINQ将把它包含为System.Data.Linq.Binary
,所以你可以直接从二进制文件中创建图像,使用MemoryStream
。
尝试以下操作:
public Image ReturnDbImage()
{
var dbBinary = (from s in db.Image_tables
where s.Id ==1
select s.imag).FirstOrDefault();
if (dbBinary == null)
{
//Handle the issue
}
else
{
using (var ms = new MemoryStream(dbBinary.ToArray()))
{
Image img = Image.FromStream(ms);
return img;
}
}
}
我已经从方法中删除了不必要的变量cou
和table
,因为您没有在任何地方使用它们。