2013-03-08 2 views
0

Я пытаюсь сохранить изображение как 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

Священная инъекция для инъекций sql, Бэтмен! –

+0

Кроме того, tempuri.org - это поддельная компания Microsoft, используемая во всех своих примерах кода сериализации. С тех пор они прекратили действие домена. Похоже, вы только частично адаптировали образец откуда-то. –

ответ

0

Я бы не передал ссылку Image, а скорее Byte [].

Смежные вопросы