0

您好我正在尝试检索包含 ie 的 pProductImage。~/Images/pic1.jpg (images url) 来自 products 表,并使用 pProductId 作为标识符,根据 Id 显示不同的图像。

这是我的 catalogue.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using System.Data.OleDb;


public partial class Catalogue : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string ImageId = Request.QueryString["Img"];

        string sqlText = "SELECT pProductImage FROM Products WHERE pProductId = " +ImageId;

        OleDbConnection mDB = new OleDbConnection(ConfigurationManager.ConnectionStrings["AccessConnection"].ConnectionString);
        OleDbCommand cmd = new OleDbCommand(sqlText, mDB);

        mDB.Open();
        OleDbDataReader rdr = cmd.ExecuteReader();
        if (rdr.Read())
        {
            Response.BinaryWrite((byte[])rdr["pProductImage"]);
        }
        mDB.Close();

    }
}

在我的 cataglogue.aspx 中(要在图像控件中显示的图像)

<div>

    <img src="Catalogue.aspx?pProductId=2" alt="" />
    </div>
4

1 回答 1

0

如果您将图像 url 存储在数据库表中,那么您需要将其视为字符串数据 - 例如

在代码隐藏中:

protected string GetProductImgUrl(int productId)
{
   var sqlText = "SELECT pProductImage FROM Products WHERE pProductId = " + productId.ToString();
   using(var mDB = new OleDbConnection(ConfigurationManager.ConnectionStrings["AccessConnection"].ConnectionString))
   {
       mDB.Open();
       var cmd = new OleDbCommand(sqlText, mDB);
       using (var rdr = cmd.ExecuteReader())
       {
          if (rdr.Read())
          {
            return ResolveUrl((rdr["pProductImage"]).ToString());
          }
       }
   }
   return ResolveUrl("~/images/NotAvailable.png");     // Not available image
}

在加价中

<div>
    <img src='<%= GetProductImgUrl(2) %>' alt="" />
</div>
于 2012-12-28T05:42:50.563 回答