将图像作为blob存储在数据库中

时间:2013-03-08 21:31:26

标签: c# database

我正在尝试将图像存储为数据库中的BLOB,如下所示:

    c = new MySqlCommand("INSERT INTO korisnici VALUES( '" + entity.Id + "','" + entity.Prezime + "','" + entity.Ime + "','" + **SlikaUBase64(entity.Slika, ImageFormat.Bmp)**...

这是我从图像中创建BLOB的函数:

    public string SlikaUBase64(Image image, ImageFormat format)
{
    //slika u byte[]
    byte[] prazan=new byte[0];
    if (image == null) return Convert.ToBase64String(prazan);
    MemoryStream ms = new MemoryStream();
    image.Save(ms, format);
    byte[] imageBytes = ms.ToArray();

    // byte[] u base64
    string base64 = Convert.ToBase64String(imageBytes);
    return base64;
}

我收到此异常:尝试序列化参数http://tempuri.org/:entity时出错。 InnerException消息是'Type'System.Drawing.Bitmap',带有数据协定名称 “位图:http://schemas.datacontract.org/2004/07/System.Drawing”不是预期的。考虑使用DataContractResolver或将任何静态未知的类型添加到已知类型列表中 - 例如,通过使用KnownTypeAttribute属性或将它们添加到传递给DataContractSerializer的已知类型列表中。有关详细信息,请参阅InnerException。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

我不会传入Image引用,而是传递Byte []。