ASP.NET 2.0数据教程之第五十五:在Data Web控件显示二进制数据2010-08-11 翻译:CSDN 王文涛返回“”导言:在前面的教程我们阐述了应用程序处理二进制数据的2种模式, 以及使用FileUpload 控件从浏览器向服务器文件系统上传文件。当文件上传并存 储在文件系统里时,应在相应的数据库记录里存储该文件的存储路径。我 们先来看如何为最终用户提供二进制数据。怎样展示二进制数据呢?这取决于其 类型。比如图片,我们将其显示为image;如果是PDFs,Microsoft Word文档、ZIP 文件或其它类型的数据,或许提供一个“Download”链接比较妥当。在本节,我们看如何在GridView和DetailsView一类的数据Web控件里呈现 二进制数据,在后面的教程我们将注意力转向将上传文件和数据库联系起来。第一步:提供BrochurePath值表Categories的Picture列存储相关 类的图片信息。具体的讲,为16色的低质量位图,大小为172乘120像素,约11 KB 。另外还包括一个约78字节的OLE报头,在显示图片的时候需要将其剥离。为什么 会有报头信息呢?因为数据库Northwind源于微软的Access数据库。在Access里二 进制数据OLE类型来存储的,该类型会添加报头。现在,我们看如何从图片剥离报 头,以便显示。在后面的教程我们将创建一个界面,将带报头的这些位图替换为 不带报头的等价的JPG图片。前面我们考察了如何使用FileUpload控件, 让我们继续为服务器文件系统添加文件。不过暂时不用更新Categories表的 BrochurePath列,那是下一章的内容。我们现在需要手工为BrochurePath赋值。在本教程,当你下载东西时,可以看到在~/Brochures7文件夹有7个PDF小 册子,每个小册子对应一个种类,Seafood除外。我故意没为Seafood提供PDF小册 子,以便探讨如何处理某些记录没有附带二进制数据的情况。在服务器资源管理 器里右键点击Categories,选“查看表数据”,输入文件路径,如图1 所示。由于Seafood类没有图片,将其BrochurePath的值设为“NULL” 。

图1:手工为表Categories的BrochurePath列键入值