我想在Sql Table中显示我已存储为byte
的图像。
ItemTemplate代码
ImageUrl=<%# Eval("Image")%>
图像是来自sql server
的字节。在我的应用程序中无法显示来自服务器的图片。
SQL架构:[Image]
[image]
NULL
请建议如何显示图像。
答案 0 :(得分:0)
好像你已经尝试过,你可能有一些有用的链接。不过,你走了。
<强>以下步骤: - 强>
1.要从数据库中检索图像,首先将datatype
从Image
更改为nvarchar(550)
2.您需要根据 ID
编写代码获取图像protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["ImageID"] != null)
{
string strQuery = "select ImageName, ImagePath, ImageData from youtableName where id=@id";
SqlCommand cmd = new SqlCommand(strQuery);
cmd.Parameters.Add("@id", SqlDbType.Int).Value = Convert.ToInt32(Request.QueryString["ImageID"]);
DataTable dt = GetData(cmd);
if (dt != null)
{
Byte[] bytes = (Byte[])dt.Rows[0]["Data"];
Response.Buffer = true;
Response.Charset = "";
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ContentType = dt.Rows[0]["ContentType"].ToString();
Response.AddHeader("content-disposition", "attachment;filename="
+ dt.Rows[0]["ImageName"].ToString());
Response.BinaryWrite(bytes);
Response.Flush();
Response.End();
}
}
}
GetData
将是您的数据表值,它将来自数据库。
<asp:image id="Image1" runat="server" imageurl="ImageCSharp.aspx?ImageID=1" />
<asp:image id="Image2" runat="server" imageurl="ImageCSharp.aspx?ImageID=2" />
<asp:image id="Image3" runat="server" imageurl="ImageCSharp.aspx?ImageID=3" />
&#13;
以下是您的完整参考: -