0

Oracle データベースへのイメージの挿入が完了しました。今、私はそれを表示しようとしています。

私のハンドラーコードは次のとおりです。

    public void ProcessRequest(HttpContext context)
    {
        OracleDataReader dr = null;
        OracleCommand cmd = null;
        OracleConnection conn = new OracleConnection("Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVER_NAME=XE)));User Id=sakthi_studdb;Password=sakthi;");
        try
        {
            cmd = new OracleCommand
          ("select IMAGE from IMAGETBL where ID=" +
          context.Request.QueryString["imgid"], conn);
            conn.Open();
            dr = cmd.ExecuteReader();
            while (dr.Read())
            {
                context.Response.ContentType = "image/jpg";
                context.Response.BinaryWrite((byte[])dr["IMAGE"]);
            }
            if (dr != null)
                dr.Close();
        }
        finally
        {
            if (conn != null)
                conn.Close();
        }
    }

そして、私のaspxイメージコントロールは次のとおりです:

    <div>
This is the student image requested:

    <asp:Image ID="picone" ImageUrl="~/Handler1.ashx?imgid=299" runat="server" />
</div>

aspx を実行すると、エラーは見つかりません。しかし、画像が表示されません。以下の出力のスクリーンショットを見つけることができます。

ここに画像の説明を入力

何が悪いのか知りたいです。

     public void ProcessRequest(HttpContext context)
    {
        OracleConnection conn = new OracleConnection("Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVER_NAME=XE)));User Id=sakthi_studdb;Password=sakthi;");
        try
        {
            long imageId = Convert.ToInt64(context.Request.QueryString["imgid"]);

            using (OracleCommand cmd = new OracleCommand("select IMAGE from IMAGETBL where ID=:ID", conn))
            {
                cmd.Parameters.Add(":ID", OracleDbType.Int64).Value = imageId;
                conn.Open();
                context.Response.ContentType = "image/gif";
                context.Response.BinaryWrite((byte[])cmd.ExecuteScalar());
            }                    

        }
        finally
        {
            if (conn != null)
                conn.Close();
        }
    }

これでもうまくいかない

4

0 に答える 0