0

データベースに名前と画像を含むテーブルがありますテキストボックスに指定された名前に基づいて画像をロードしたい

string strQuery = "select img from exp where name='" + TextBox1.Text + "'";

これはaspxでは問題ありませんが、画像ハンドラーashxファイルでは、同じSQLクエリを適用できるように、このテキストボックスの値を渡したいです

今まで私のハンドラファイルは

using System;
using System.Web;
using System.Data.SqlClient;

public class ShowImage : IHttpHandler
{ 
    public void ProcessRequest(HttpContext context)
    {
        string imageid = context.Request.QueryString["img"];

        SqlConnection con = new SqlConnection("server=.\\SQLEXPRESS;database=experiment;trusted_connection=true;");
        con.Open();
        SqlCommand command = new SqlCommand("select img from exp where (here i stuck....)", con);
        SqlDataReader dr = command.ExecuteReader();
        dr.Read();
        context.Response.BinaryWrite((Byte[])dr[0]);
        con.Close();
        context.Response.End();
    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }
}

私はC#asp.netでこれが欲しい。

4

1 に答える 1

0

Textbox と同じページに Button があると仮定すると、次のコードをボタン クリック ハンドラに配置できます。

Response.Redirect( "ShowImage.ashx?ImageName=" & Server.UrlEncode(TextBox1.Text));

これにより、次のように画像ハンドラーで画像にアクセスできます

string imageName = context.Request.QueryString["ImageName"];
SqlCommand command = new SqlCommand("select img from exp where name='" + imageName  + "'", con);

もちろん、SQL インジェクションを防ぐために、パラメータ化されたクエリを使用する必要があります。

于 2013-10-19T19:10:32.323 に答える