2016-06-27 9 views
0

イメージをデータベースに保存しています。それは私がそれをデバッグするときにうまくいく。それを公開した後、私はロードしようとするか、画像を保存しようとすると、それは私に型キャストエラーを与えます。 私は、画像を保存するには、次のコードを使用しています:タイプ 'System.String'のオブジェクトをタイプして 'System.Byte []'にキャストすることができません。公開後のエラー

MemoryStream ms = new MemoryStream(); 
kephelye.Image.Save(ms, kephelye.Image.RawFormat); 
byte[] img = ms.ToArray(); 

及び負荷画像:

DataSet ds = new DataSet(); 
da.Fill(ds); 
byte[] ap = (byte[])(ds.Tables[0].Rows[0]["kepcim"]); 
MemoryStream ms = new MemoryStream(ap); 
if (ms.Length != 0) { 
kephelye2.Image = Image.FromStream(ms); 
} 

ms.Close(); 
+3

あなたは[0] .Rows [0] [「kepcim」]は 'バイト配列であることを確認し' ds.Tablesていますか?... – Sayse

+0

テストデータベースとあなたのテーブルレイアウトの間に不一致があるかもしれませんプロダクションデータベース。 –

+0

ありがとうそれは問題だった:) –

答えて

0

は、単に新しいビットマップにメモリストリームから画像を取得し、ストリームを閉じます。

public static Image GetImage(byte[] buffer, int offset, int count) 
{ 
    var memoryStream = new MemoryStream(buffer, offset, count); 
    Bitmap bm = new Bitmap(Image.FromStream(memoryStream)); 
    // Close the stream here, won't affect the bitmap. 
    return bm; 
} 
+0

ありがとう、しかし私は問題を解決した:)データベースでは、 "kepcime" - 列がBLOBではないSTRINGだったため、不一致があった:) –

関連する問題