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 メッセージは、「Type 'System.Drawing.Bitmap' with data contract name 'Bitmap: http://schemas.datacontract.org/2004/07/System.Drawing ' は想定されていません」でした。DataContractResolver の使用を検討するか、既知の型のリストに静的に認識されていない型を追加します。たとえば、KnownTypeAttribute 属性を使用するか、DataContractSerializer に渡される既知の型のリストにそれらを追加します。詳細については、InnerException を参照してください。

誰でも助けてもらえますか?

4

1 に答える 1

0

Image 参照ではなく、Byte[] を渡します。

于 2013-03-08T21:44:32.420 に答える