如何显示存储在数据库中的图片

sxfcct 2004-09-09 08:43:19
NothWind数据库Employees表中有个Photo字段(Image类型)存储图片,请问如何将它显示在页面上,偶在试了许多网上的方法都不成功啊!希望大家多多帮助,成功了立马给分^_^
...全文
255 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sxfcct 2004-09-10
  • 打赏
  • 举报
回复
各位大哥能不能亲自写一个试试啊!上边的例子小弟试过了,不成啊!跪求!!!
sxfcct 2004-09-10
  • 打赏
  • 举报
回复
我已经解决了,不过是我自己造的数据库
为什么SQL自带的就显示不出来呢
oldjackyone 2004-09-10
  • 打赏
  • 举报
回复
帮你顶先。。。。

累了,要睡了,明天帮你写一个吧。
lsg2004lsg 2004-09-09
  • 打赏
  • 举报
回复
C# 版本

DataGridShowImage.aspx

<%@ Page language="c#" debug="true" Codebehind="DataGridShowImage.aspx.cs" AutoEventWireup="false"
Inherits="eMeng.Exam.DataGridShowImage.DataGridShowImage" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>从数据库中取得照片并显示在DataGrid中</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="DataGridShowImage" method="post" runat="server">
<h3 align="center">从数据库中取得照片并显示在DataGrid中</h3>
<asp:DataGrid ID="DG_Persons" AutoGenerateColumns="False" Width="99%" HeaderStyle-BackColor="#ff0000"
HeaderStyle-Font-Bold="True" HeaderStyle-ForeColor="#ffffff" ItemStyle-BackColor="Beige"
BorderColor="#000000" Runat="server" HeaderStyle-HorizontalAlign="Center">
<Columns>
<asp:TemplateColumn HeaderText="姓名">
<ItemTemplate>
<asp:Label Runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "PersonName") %>' ID="Label1"/>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="电子邮件">
<ItemTemplate>
<asp:Label Runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "PersonEmail") %>' ID="Label2"/>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="性别">
<ItemTemplate>
<asp:Label Runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "PersonSex") %>' ID="Label3"/>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="出生日期">
<ItemTemplate>
<asp:Label Runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "PersonDOB") %>' ID="Label4"/>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="照片">
<ItemTemplate>
<asp:Image Runat=server ID="Image1"
ImageUrl='<%# FormatURL(DataBinder.Eval(Container.DataItem, "PersonID")) %>' />
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
</form>
</body>
</HTML>

DataGridShowImage.aspx.cs

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

namespace eMeng.Exam.DataGridShowImage
{
/// <summary>
/// DataGridShowImage 的摘要说明。
/// </summary>
public class DataGridShowImage : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid DG_Persons;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!this.IsPostBack)
{
BindGrid();
}

}
private void BindGrid()
{
string strCnn = "Data Source=.;Initial Catalog=mxh;User Id=sa;Password=;";
SqlConnection myConnection = new SqlConnection(strCnn);
SqlCommand myCommand = new SqlCommand("SELECT * FROM Person", myConnection);
myCommand.CommandType = CommandType.Text;
try
{
myConnection.Open();
DG_Persons.DataSource = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
DG_Persons.DataBind();
}
catch(SqlException SQLexc)
{
Response.Write("提取数据时出现错误:" + SQLexc.ToString());
}
}
protected string FormatURL(object strArgument)
{
return "ReadImage.aspx?id=" + strArgument.ToString();
}

#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}

ReadImage.aspx

<%@ Page language="c#" Codebehind="ReadImage.aspx.cs" AutoEventWireup="false"
Inherits="eMeng.Exam.DataGridShowImage.ReadImage" %>

ReadImage.aspx.cs

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Data.SqlClient;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace eMeng.Exam.DataGridShowImage
{
/// <summary>
/// ReadImage 的摘要说明。
/// </summary>
public class ReadImage : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
string strImageID = Request.QueryString["id"];
SqlConnection myConnection = new SqlConnection("Data Source=.;Initial Catalog=mxh;User Id=sa;Password=;");
SqlCommand myCommand = new SqlCommand("Select PersonImageType, PersonImage from Person Where PersonID="
+ strImageID, myConnection);

try
{
myConnection.Open();
SqlDataReader myDataReader;
myDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
if(myDataReader.Read())
{
Response.Clear();

Response.ContentType = myDataReader["PersonImageType"].ToString();
Response.BinaryWrite((byte[])myDataReader["PersonImage"]);
}
myConnection.Close();
}
catch (SqlException SQLexc)
{
}
Response.End();
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}


eboywy 2004-09-09
  • 打赏
  • 举报
回复
Cmd.Parameters.Add("@in_PhotoID",OracleType.VarChar,10);
改为
Cmd.Parameters.Add("@in_PhotoID",SqlDBType.VarChar,10);

eboywy 2004-09-09
  • 打赏
  • 举报
回复
string strCmd="Select Photo From tblname Where photoid="@in_PhotoID";
SqlConnection Conn=new SqlConnection ("connStr");
SqlCommand Cmd=new SqlCommand(strCmd,Conn);
Cmd.CommandType=CommandType.Text;

Cmd.Parameters.Add("@in_PhotoID",OracleType.VarChar,10);
Cmd.Parameters["@in_PhotoID"].Value="123";

Conn.Open();
SqlDataReader Dr=Cmd.ExecuteReader();
//
if(Dr.Read())
{
byte[] btImage = (byte[])Dr["Photo"];
Response.Clear();
//向客户端发送当前缓冲区的所有内容
Response.Flush();
Response.BinaryWrite( btImage );
}//
tavor 2004-09-09
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/3340/3340553.xml?temp=.1626093
coffeewar 2004-09-09
  • 打赏
  • 举报
回复
http://dotnet.aspx.cc/ShowDetail.aspx?id=ECD9AE16-8FF0-4A1C-9B9F-5E8B641CB1B1

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧