0

データベースから画像を読み取るための次のコードがあります。

cn = new SqlConnection(@"Data Source=ADMIN-PC;Initial Catalog=imagedata;Integrated Security=True");

cmd = new SqlCommand("select *  from image where imgid=1", cn);
cn.Open();
SqlDataReader dr;

try
{
    dr = cmd.ExecuteReader();

    if (dr.Read())
    {
        byte[] imgarr = (byte[])dr["img"];
        ms = new MemoryStream(imgarr);
        ms.Seek(0, SeekOrigin.Begin);
   }
}
catch(Exception ex)
{
    MessageBox.Show(ex.Message);
}
finally
{
   cn.Close();
}

これを更新してASP.Netページに画像を表示するにはどうすればよいですか?

4

1 に答える 1

7

ASP.Net では、このコードは、画像を表示するページとは別のリソース (ファイル/ページ) に属します。通常、これにはハンドラー ( *.ashx) を使用しますが、本当に必要な場合は通常のページ ( *.aspx) を使用できます (ヒント: ハンドラーの方が高速で簡単です)。既存のコードを ProcessRequest() メソッド (ハンドラー) または Page_Load() メソッド (ページ) に移動し、メモリ ストリームの代わりに応答ストリームに書き込むようにコードを変更します。また、適切なコンテンツ タイプ ヘッダーを設定する必要があります。

それが完了したら、画像を表示するページを更新します。通常の<img要素または<asp:Imageコントロール (どちらでも機能します)srcを使用し、前の段落で作成したリソースを使用するように属性を設定します。画像をプルするデータベース レコードのキーを伝えるデータについて、セッション、クエリ文字列、または Cookie などをチェックするのに十分なほどリソースをスマートにする必要があります。クエリ文字列を使用した場合は、この時点でそれも src 属性の一部として設定してください。

于 2012-10-02T19:36:23.663 に答える