0

SQL Server 2008にテーブルがあり、images2 つの列imageidimage. 格納用にバイナリ形式に変換したコントローラーと画像をimage使用して、列に画像を挿入できます。FileUploadここで、画像 ID に対応する画像ボックスに画像を表示したいと考えています。ユーザーに入力させるためのテキストボックスidと、表示するコマンドを実行するためのボタンを使用しています。

public void ShowImage()
{
        SqlConnection con = new SqlConnection();
        con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings["anu"].ToString();
        SqlCommand cmd = new SqlCommand();
        cmd.CommandText = "Select ID,Image from Images where ID=" + txtid.Text;
        cmd.CommandType = System.Data.CommandType.Text;
        cmd.Connection = con;
        con.Open();
        SqlDataReader dreader = cmd.ExecuteReader();
        dreader.Read();
        Context.Response.BinaryWrite((byte[])dreader["image"]);
        dreader.Close();
        con.Close();
}

このコードは正常に動作していますが、別のページに画像をロードしますが、特定の画像ボックスに表示する必要があります。私のフロント エンドは ASP.NET です。誰かが答えを知っているなら、私を助けてください。

4

2 に答える 2

0

まず、クエリ (またはストアド プロシージャ) で実際にパラメーターを使用する必要があります。

そして、バイナリデータから画像を作成し、それを正しい画像形式で出力ストリームに保存するだけです。

var ms = new MemoryStream((byte[])dreader["image"]);
var image = Image.FromStream(ms);
Context.Response.ContentType = "image/jpeg"; //or your actual imageformat
image.Save(Context.Response.OutputStream, format);
于 2013-08-02T07:01:15.920 に答える
0

Response.Writeセッションにバイト配列を格納する代わりに

Session["image"]=(byte[])dreader["image"];

あなたのソースとしてこれを使用してくださいimage

byte[] imgSrc=(byte[])Session["image"]
string imgSrcStr= Convert.ToBase64String(imgSrc);
string imageSrc = string.Format("data:image/gif;base64,{0}", imgSrcStr);

In the view:

<img src='"<%=imageSrc%>"' />

または、代わりに関数自体でこれらすべてを行うだけですResponse

于 2013-08-02T06:43:29.387 に答える