因胸联盟 发表于 2015-1-16 22:09:25

ASP编程:利用DataGrid显现来自于数据库的图像

对用户来说可预见费用、节约费用,可以做到花少钱办大事。由于省去了购买软件和硬件等的前期费用,用户可以租用较高级的应用软件。ASP的收费是根据软件的类型、客制化程度、用户数量、服务期限来定的,对客户来说这笔费用是可以预见的。方便于客户应用软件的升级。datagrid|数据|数据库|显现媒介

我们怎样创立一个DataGrid列,显现从数据库中取得的图象?

这是一个常常被问及的关于DataGrid控件的成绩,并且其他能够很简单地经由过程分离你已晓得的关于模板列的内容和一点点关于HTTP处置句柄(HTTPHandler)的常识往返答。

上面利用NorthWind数据库的Employees表来在一个DataGrid中显现数据库中的图象。

代码

---BindImg.aspx

<%@Pagelanguage="c#"Codebehind="BindImg.aspx.cs"AutoEventWireup="false"Inherits="ShowImg.BindImg"%>
<HTML>
<HEAD>
<title>BindImg</title>
</HEAD>
<body>
<formid="Form1"method="post"runat="server">
<FONTface="宋体">
<asp:DataGridid="MyDataGrid"runat="server"AutoGenerateColumns="False"Width="632px">
<AlternatingItemStyleBackColor="Beige"></AlternatingItemStyle>
<HeaderStyleHorizontalAlign="Center"></HeaderStyle>
<Columns>
<asp:TemplateColumnHeaderText="Photo">
<ItemTemplate>
<imgsrc=<%#"GetImg.ashx?ID="+DataBinder.Eval(Container.DataItem,"EmployeeID")%>>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumnDataField="LastName"HeaderText="LastName"></asp:BoundColumn>
<asp:BoundColumnDataField="FirstName"HeaderText="FirstName"></asp:BoundColumn>
<asp:BoundColumnDataField="title"HeaderText="Title"></asp:BoundColumn>
</Columns>
</asp:DataGrid></FONT>
</form>
</body>
</HTML>

---BindImg.aspx.cs

usingSystem;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Web;

usingSystem.Data.SqlClient;

namespaceShowImg
{
///<summary>
///BindImg的择要申明。
///</summary>
publicclassBindImg:System.Web.UI.Page
{
protectedSystem.Web.UI.WebControls.DataGridMyDataGrid;

privatevoidPage_Load(objectsender,System.EventArgse)
{
//在此处安排用户代码以初始化页面
if(!Page.IsPostBack)
{
SqlConnectionconn=newSqlConnection(@"Server=shoutormydb;database=northwind;uid=sa;Pwd=shoutor");
try
{
conn.Open();
SqlCommandcmd=newSqlCommand("selectemployeeID,lastname,firstname,titlefromemployees",conn);
SqlDataReaderreader=cmd.ExecuteReader();
MyDataGrid.DataSource=reader;
MyDataGrid.DataBind();
}
finally
{
conn.Close();
}
}
}
#regionWeb窗体计划器天生的代码
overrideprotectedvoidOnInit(EventArgse)
{
//
//CODEGEN:该挪用是ASP.NETWeb窗体计划器所必须的。
//
InitializeComponent();
base.OnInit(e);
}

///<summary>
///计划器撑持所需的办法-不要利用代码编纂器修正
///此办法的内容。
///</summary>
privatevoidInitializeComponent()
{
this.Load+=newSystem.EventHandler(this.Page_Load);
}
#endregion
}
}

---GetImg.ashx

<%@WebHandlerLanguage="C#"Class="ShowImg.GetImg"%>

---GetImg.aspx.cs

usingSystem;
usingSystem.Web;
usingSystem.Data;
usingSystem.Data.SqlClient;
usingSystem.Drawing;
usingSystem.Drawing.Imaging;
usingSystem.IO;

namespaceShowImg
{
///<summary>
///GetImg的择要申明。
///</summary>
publicclassGetImg:IHttpHandler
{
publicvoidProcessRequest(HttpContextcontext)
{
stringid=(string)context.Request["id"];
if(id!=null)
{
MemoryStreamstream=newMemoryStream();
SqlConnectionconn=newSqlConnection(@"Server=shoutormydb;database=northwind;uid=sa;Pwd=shoutor");
Bitmapbm=null;
Imageimage=null;
try
{
conn.Open();
SqlCommandcmd=newSqlCommand("selectphotofromemployeeswhereemployeeid="+id+"",conn);
byte[]blob=(byte[])cmd.ExecuteScalar();
stream.Write(blob,78,blob.Length-78);
bm=newBitmap(stream);

intwidth=48;
intheight=(int)(width*((double)bm.Height/(double)bm.Width));
//GetThumbnailImage生</p>ASP由于使用了COM组件所以它会变的十分强大,但是这样的强大由于WindowsNT系统最初的设计问题而会引发大量的安全问题。只要在这样的组件或是操作中一不注意,哪么外部攻击就可以取得相当高的权限而导致网站瘫痪或者数据丢失;

若相依 发表于 2015-1-18 21:15:20

掌握asp的特性而且一定要知道为什么。

兰色精灵 发表于 2015-1-25 05:56:17

最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。

海妖 发表于 2015-2-2 17:00:39

在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。

精灵巫婆 发表于 2015-2-8 02:56:09

代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。

爱飞 发表于 2015-2-24 04:14:10

没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。

分手快乐 发表于 2015-3-7 10:54:13

还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。

山那边是海 发表于 2015-3-15 03:20:14

从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了

小女巫 发表于 2015-3-21 18:40:21

在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。
页: [1]
查看完整版本: ASP编程:利用DataGrid显现来自于数据库的图像