2012-02-20 7 views
-1

ストリームを使用してDBからイメージを取得しています。私がバイトに変換するのを助ける人が必要です。 私のコード。メモリストリームをByteに変換

//connection.Open(); 

string sql = "SELECT Photo FROM ImageTable WHERE TagId = @ID"; 

SqlCommand cmd = new SqlCommand(sql, connection); 
cmd.CommandType = CommandType.Text; 
cmd.Parameters.AddWithValue("@ID", tagid); 

connection.Open(); 

object img = cmd.ExecuteScalar(); 

try 
{ 
    return new MemoryStream((byte[])img); 
} 
catch 
{ 
    return null; 
} 

私が戻る前に、私はバイトに変更する必要があります。誰か助けてください。

+0

「バイト」を、通常は0〜255の値をとる整数型をされることを意味しますあなたは本当にあなたのイメージを変換したいですか? –

+2

SQLに格納されているイメージの形式は何ですか。 PSの場合は、投稿からDB接続の詳細を削除することができます – StaWho

+0

Yacoder - 私はグーグルで、彼らはバイトに変更されたコードの大部分を見つけました。あなたは他の良いアイデアはありますか? StaWho - そのvarbinary(MAX)... db接続が削除されました... –

答えて

0

私は、これはあなたが本当に欲しいものであるとは思いませんが、質問はMemoryStreambyte[]に変換する方法であるため、:

byte[] ObjectToByteArray(Object obj) 
{ 
    using (MemoryStream ms = new MemoryStream()) 
    { 
     BinaryFormatter b = new BinaryFormatter(); 
     b.Serialize(ms, obj); 
     return ms.ToArray(); 
    } 
}