ASP.NET如何将Access数据库图片显示在页面上?上海阿里云代理商专业指南
一、Access数据库图片存储原理
在ASP.NET项目中显示Access数据库中的图片,关键在于理解Access存储图片的特殊格式:
- OLE对象字段:Access默认将图片存储为OLE(Object Linking and Embedding)对象
- 头部信息问题:Access会在原始图片数据前添加78字节的OLE头部信息
- 字节数组转换:需要从数据库中读取二进制数据并转换为可显示的图片格式
二、ASP.NET实现步骤详解
步骤1:数据库准备
CREATE TABLE Products (
ID AUTOINCREMENT PRIMARY KEY,
ProductName TEXT(255),
ProductImage OLEOBJECT
);
步骤2:读取图片数据(C#后端)
public void DisplayImage(string id)
{
string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|/mydb.accdb;";
using (OleDbConnection conn = new OleDbConnection(connStr))
{
conn.Open();
string query = "SELECT ProductImage FROM Products WHERE ID = @ID";
OleDbCommand cmd = new OleDbCommand(query, conn);
cmd.Parameters.AddWithValue("@ID", id);
byte[] imageData = (byte[])cmd.ExecuteScalar();
// 移除Access添加的78字节OLE头部
byte[] cleanedData = new byte[imageData.Length - 78];
Array.Copy(imageData, 78, cleanedData, 0, cleanedData.Length);
Response.ContentType = "image/jpeg";
Response.BinaryWrite(cleanedData);
}
}
步骤3:前端页面调用
<asp:Image ID="imgProduct" runat="server"
ImageUrl='<%# "~/ImageHandler.ashx?id=" + Eval("ID") %>' />
步骤4:创建通用处理程序(ImageHandler.ashx)
public class ImageHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
string id = context.Request.QueryString["id"];
// 调用步骤2中的DisplayImage方法
DisplayImage(id);
}
}
三、阿里云环境部署优势
热门文章更多>
- 定南广州阿里云代理商:asp实现限制一个ip只能访问一次的方法
- 定南深圳阿里云代理商:Android中判断字符串中必须包含字母或者数字
- 定南北京阿里云代理商:asp.net实现识别客户端浏览器或操作系统
- 定南上海阿里云代理商:asp.net mvc3.0安装失败如何解决
- 定南阿里云国际站注册教程:Android编程实现获取标题栏、状态栏的高度、屏幕大小及模拟Home键的方法
- 定南阿里云国际站充值:Android编程实现将压缩数据库文件拷贝到安装目录的方法
- 定南阿里云国际站代理商:Android实现调用系统相册和拍照的Demo示例
- 定南阿里云国际站:ASP编码必备的8条原则
- 定南重庆阿里云代理商:asp.net中javascript与后台c#交互
- 定南广州阿里云代理商:Android保持屏幕常亮唤醒状态的方法
- 定南深圳阿里云代理商:Android实现获取SD卡总容量,可用大小,机身内存总容量及可用大小的方法
- 定南北京阿里云代理商:ASP动态网页制作技术经验分享
- 定南上海阿里云代理商:ASP新手必备的基础知识
- 定南阿里云国际站注册教程:ASP.NET预定义模板介绍
- 定南阿里云国际站充值:Android开发四大组件之实现电话拦截和电话录音
- 定南阿里云国际站代理商:Android SDK在线更新镜像服务器大全
- 定南阿里云国际站:Android 组件样式定制方法详解
- 定南重庆阿里云代理商:Android编程之图片颜色处理方法
- 定南广州阿里云代理商:Android学习之Intent中显示意图和隐式意图的用法实例分析
- 定南深圳阿里云代理商:ASP.NET清空缓存时遇到的问题简析