将varbinary转换为图像

Sch*_*oof 2 c# silverlight

我设法将Image转换为varbinary并将其存储在我的数据库中.我一直在尝试将varbinary转换为Image,但我在这里遇到了麻烦.

首先,我在我的服务中从我的数据库中获取Binary.

    public Binary getAfbeelding(int id)
    {

        var query = (from p in dc.Afbeeldings
                     where p.id == id
                     select p.source).Single();

        Binary source = query;
        return source;
    }
Run Code Online (Sandbox Code Playgroud)

然后我尝试使用StackOverflow上的代码将varbinary转换为图像:

    public static string convertToImage(Binary source)
    {
        byte[] b = source.ToArray();
        MemoryStream ms = new MemoryStream(b);
        Image img = Image.FromStream(ms);
        return img.Source.ToString();
    }
Run Code Online (Sandbox Code Playgroud)

我在打电话之前遇到了麻烦new MemoryStream:

'ondernemersAward.EditAfbeeldingServiceReference.Binary'不包含'ToArray'的定义,并且没有扩展方法'ToArray'接受类型'OndernemersAward.EditAfbeeldingServiceReference.Binary'的第一个参数可以找到(你是否缺少using指令或程序集引用?)

出于一些奇怪的原因,我不能使用"普通"二进制文件,它总是会告诉我使用OndernemersAward.EditAfbeeldingServiceReference.Binary哪个是我的ServiceReference,如您所见.

怎么解决这个问题?

Sas*_*sha 6

1)将对项目的引用添加到System.Data.Linq.dll

2)然后尝试这个:

public static Image ConvertToImage(System.Data.Linq.Binary iBinary)
    {
        var arrayBinary = iBinary.ToArray();
        Image rImage = null;

        using (MemoryStream ms = new MemoryStream(arrayBinary))
        {
            rImage = Image.FromStream(ms);
        }
        return rImage;
    }
Run Code Online (Sandbox Code Playgroud)