2013-03-08 130 views
0

我想要的圖像存儲在我的數據庫中的BLOB,像這樣:存儲圖像爲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消息是'類型'System.Drawing.Bitmap'與數據合同名稱 '位圖:http://schemas.datacontract.org/2004/07/System.Drawing'不是預期的。考慮使用DataContractResolver或將任何不知道的類型靜態添加到已知類型列表中 - 例如,通過使用KnownTypeAttribute屬性或將它們添加到傳遞給DataContractSerializer的已知類型列表中。有關更多詳細信息,請參閱InnerException。

任何人都可以幫忙嗎?

+0

Holy sql注入漏洞,蝙蝠俠! – 2013-03-08 21:46:23

+0

此外,tempuri.org是微軟在其所有序列化示例代碼中使用的假公司。他們已經允許域名到期。這聽起來像你只是部分地從某處調整了一個樣本。 – 2013-03-08 21:47:51

回答

0

我不會傳遞Image引用,而是Byte []。

相關問題