栖迩网首页产品报价家电社区栖迩晓得>>驱动下载微软技术更多

热点推荐
主页>社区>IT 技术与微软技术>编程开发>.NET

ADO.NETEntityFramework存取数据库中图片_1


原文出处:中国站长站  2009/7/1 22:20:14 阅读 93 次


非续读浏览 | 发布资讯 | 评论 | 置顶 | 打印

网站中的图片可以保存到文件系统中,即专门的目录用于图片的存放,这样的存储配上数据库中保存的图片路径信息,相信很多网站是这么选择的。这样的搭配由于存储和管理信息是分开的,其优点就是对数据库的性能不会产生太大影响,但是也正是由于这种分开网站的目录结构轻易是不可以变的,另外图片数据的备份需要数据库和文件目录同步进行。另外一种存储和管理图片的方式是将图片存到数据库中,如果站点的图片数量不是太多,图片不是太大,这种方式是相当适合的。本文我们看一下如何使用ADO.NET Entity Framework构建数据访问层,实现将图片存到数据库中以及从数据库中获取图片。

前期工作:创建数据表+构建数据访问层

第一步,创建数据表。

表中需要一个用于保存图片的字段,类型设置为image,代码如下:

CREATE TABLE [dbo].[images](

[id] [int] IDENTITY(1,1) NOT NULL,

[imagefile] [image] NOT NULL)

第二步,构建数据访问层。该类型的数据的插入与一般的基本SQL类型不同,不过在.net 3.5平台上工作的程序员不需要考虑太多访问数据库的具体代码,我们可以选择ADO.NET Entity Framework和Linq to SQL,这里我们以前者为例。方法简单介绍如下:

项目中新建,选择ADO.NET Entity Data Model,根据向导建立到数据库的连接,根据向导选择数据库中的刚才建立的表images,向导结束之后项目中会添加一个edmx类型的文件,默认的界面中会打开自动生成的实体类图,我们在向导中选择的所有表格都会对应一个实体类默认的名称是与数据表相同,此处的images对应的实体类也是images,但是这样默认使用的话会造成歧义,我们需要手动修改一下,点击images类在属性对话框中将Name属性改为image,Entity Set Name可以改为imageSet或者不改动保持images表示的是image集合,之后实体类图中对应的类名也变成image了。这里假设存放图片的数据库名为XXX,那么生成的管理类也就是我们后面使用最多的类名为XXXEntities。

将图片保存到SQL server数据库中

首先声明一个image类型的变量不妨称之为img, image img = new image();,继而创建一个XXXEntities对象, XXXEntities XXX = new XXXEntities();

(注意using命名空间和添加对System.Data.Entity的引用)

asp.net web页面中添加FileUpload控件,该控件提供一个属性PostedFile能够为服务器提供一个输入输出流,刚好可以供我们将选择的图片读到服务器的内存里,代码如下:


2 页  [1] [2]



相关阅读:
• ASP.NETRouting对请求的处理方式 (2009/9/29 22:54:19)
• 多语言开发的个人体验 (2009/9/27 20:53:47)
• 基于ASP.NET2.0的非HttpModule山寨版MVC框架的实现 (2009/9/22 13:11:05)
• 分页那回事? (2009/9/18 21:51:03)
• 浅析ASP.NET的IIS映射 (2009/9/18 21:50:58)
• 从ASP.NET的PHP执行速度比较谈起 (2009/9/18 21:50:58)
• 软件编程走火入魔之:女人的脸男人的代码 (2009/9/16 22:12:14)
• ASP.NETWebForm页面内容输出方式 (2009/9/16 22:12:13)
• 利用ajax.dll进行asp.netajax开发 (2009/9/3 20:58:16)
• C#编程实现动态生成Word文档 (2009/9/1 19:58:43)
• Asp.net2.0之自定义控件ImageButton (2009/9/1 19:58:43)
• .net程序员,该不该学IL? (2009/9/1 19:58:42)
• 使用.NET正则表达式区分中英文 (2009/8/30 12:49:47)
• ASP.NET开发中关于Web标准的几点建议 (2009/8/30 12:49:47)
• 谈.NET反射的封装 (2009/8/30 12:49:46)
• ASP.NET用户控件说明和添加事件 (2009/8/30 12:49:45)
• .NET4.0改进的介绍 (2009/8/25 21:15:23)
• .Net应用:ASP.NET中使用AJAX中的方式 (2009/8/23 8:02:05)
• .Net基础:ASP.NET中的javascript操作 (2009/8/23 8:02:05)
• ASP.NET2.0服务器控件开发的基本概念 (2009/8/23 8:02:05)

温馨提示


特别声明

• Phontol.com 和网页作者无关,不对网页的内容负责。
• 非本站原创内容和本站转载内容,其版权所有权属于原版权持有人所有。
• 本站转载的部分内容是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。
• 如有任何异议,请参见版权声明/免责声明部分。

 
最新热点资讯排行

• 尼尔森公布美国2月份前10大网站排名
• ICANN发布最新调查报告
• Twitter承诺推中文版
• 英特尔先于AMD推最新服务器芯片
• 职业技能鉴定22日起网报
• 首款WP7手机参数曝光HTCHD2升级有戏
• Intel正式发布首批32nm六核心服务器CPU
• 盛大百度挤入电子书市场
• 美国提出10年内基本普及百兆宽带互联网蓝图
• .com域名诞生25周年:每月新增66.8万个
• 宏达电向Verizon提供CDMA版NexusOne
• 植入CMMB芯片个人电脑预计6月在重庆上市
• TD-SCDMA网络让“无线城市”梦想成真
• ipone和android手机或遭重病毒
• 光速WiFi三年内可商用
• 操盘指南:3月16日大陆内存走势报告





Phontol简介 | 广告服务 | 联系我们 | 招聘(月) | 合作媒体 | 意见反馈 | 使用条款 | 隐私权声明 | 版权声明 | 站点地图
欢迎您 反馈留言 批评指正
Copyright © Phontol. All rights reserved. 京ICP备07004242号