2009-05-20 39 views
0
byte[] imageData = null; 
long byteSize = 0; 
byteSize = _reader.GetBytes(_reader.GetOrdinal(sFieldName), 0, null, 0, 0); 

imageData = new byte[byteSize]; 
long bytesread = 0; 
int curpos = 0, chunkSize = 500; 
while (bytesread < byteSize) 
{ 
    // chunkSize is an arbitrary application defined value 
    bytesread += _reader.GetBytes(_reader.GetOrdinal(sFieldName), curpos, imageData, curpos, chunkSize); 
    curpos += chunkSize; 
} 

byte[] imgData = imageData; 

MemoryStream ms = new MemoryStream(imgData); 
Image oImage = Image.FromStream((Stream)ms); 
return oImage; 

我々は、この行が実行されている行Image oImage = Image.FromStream((Stream)ms);を打ったとき、私は問題に直面するが、その後、私は例外を取得からデータを取得したいです「パラメータが有効ではありません。」データベース

+0

実際に例外とその周囲のコードを生成する行を表示することはおそらく意味があります。今まで私たちに示してきた関数を呼び出すコードをIOWにしてください。 – AnthonyWJones

+0

既に今日尋ねられます:http://stackoverflow.com/questions/886465/image-retrive/ –

答えて

1

私はimgDataの配列に実際に有効な画像(または少なくともImage.FromStream()が理解できるもの)が含まれていないと推測しています。

あなたが考えるべきであると思われるデータをチェックしてみてください。また、ストリームをファイルに保存してそのように開くこともできます - 私はそれが "無効なフォーマット"として失敗すると思います。正しく開く場合はthis related questionをご覧ください。

関連する問題