SQL 2008存储图片和SQL 2008读取图片

用SQL Server存储文字数据很容易实现,如果用SQL Server存储图片呢?大家有没有实现思路呢?现在我用一个Demo来为大家提供一种在SQL Server中存储图片的思路。

场景:在superPhoto文件夹中,有三位NBA超级巨星的图片需要存储在数据库中,他们分别是保罗、罗斯和德隆,文件内容如下:

有了需求,下面讲实现。实现过程分为3个步骤。

步骤1:我们需要在数据库test中建立T_superStar表,并向表中插入三位球星的信息。

create table T_superStar
(
	superID varchar(10) primary key,
	superName varchar(10) not null,
	superPhoto varchar(10) not null
)

insert into T_superStar values('1','保罗','001.png')
insert into T_superStar values('2','罗斯','002.png')
insert into T_superStar values('3','德隆','003.png')

表结构如下图所示:

通过查询结果可以发现,superPhoto字段存储的是图片文件的文件名。这种思路好比内存中的栈和堆,我们都知道栈用于存储值类型数据,因为值类型的数据大小是固定的;堆用于存储引用型数据, 比如对象,数组等。在添加一个对象时,除了在堆中添加对象外,还要在栈中添加一个指向该对象的引用。

同理,因为图片文件比较大,放在数据库中很占空间,所以我们把图片放在类似于堆的文件夹中,把文件名放在类似于栈的数据表中,通过文件名锁定目标文件。

步骤2:在Asp.Net页面添加GridView,并为GridView添加列,在此尤为强调图片列的操作。我们需要为图片列配置图片的动态加载路径,配置图如下所示:

图片列的属性DataImageUrlField绑定数据表中的字段superPhoto,DataImageUrlFormat属性根据DataImageUrlField读取的文件名动态加载superPhoto文件夹下的图片文件,实现对存储图片的动态读取。

步骤3:用C#获取T_superStar表的数据,并和GridView绑定。

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!this.IsPostBack)
            {
                SqlConnection con = DB.CreateCon();
                con.Open();
                SqlCommand cmd = new SqlCommand("select * from T_superStar", con);
                SqlDataReader sdr = cmd.ExecuteReader();
                this.GridView1.DataSource = sdr;
                this.GridView1.DataBind();

            }
        }

到此,图片存储和读取的代码部分已经完成,我们看下效果图。

IT人士都知道,学计算机学久了会养成一种计算机思维,用这种思维来解决平时遇到的问题,我想说我中招了。

SQL 2008存储图片和SQL 2008读取图片,布布扣,bubuko.com

时间: 2024-10-11 00:19:11

SQL 2008存储图片和SQL 2008读取图片的相关文章

SQL Server 2008 R2升级到SQL Server 2012 SP1

1.建议对生产环境对的数据库升级之前做好备份,以防不测. 2.从SQL Server 2008 R2 升级到SQL Server 2012 SP1,需要先安装SQL Server 2008 R2 的SP1 或SP2 补丁包,在此运行安装已经下载好的SP2 补丁包,如图 3. SQL Server 2008 R2 更新运行检查,如图 4. 接受许可条款,如图 5. 选择功能,如图 6. 检查正在使用的文件,如图 7. 已准备好更新,选择"更新",如图 8. 更新完成,选择"关闭

SQL SERVER 2008 登陆失败(SQL和windows都没有对应的权限)

转自:http://www.cnblogs.com/zerocc/p/3425431.html 昨天在测试一些权限今天早上来就发现SQL SERVER 登陆不上去,报错为: 用户登陆失败:消息 18456,级别 14,状态 1,服务器 XXX,第 1 行 .  用户 'XXX' 登录失败.我的服务和代理都是自动启动的,所以问题不在这了,由于是本地服务,也没有多个帐户,测试的时候Sa也被自己禁用了.有的用户就是部分库的只读权限,怎么办呢? 方法就是:把 sql 启动到单用户模式,然后用 sqlcm

SQL Server 2008 R2 SP3 and SQL Server 2008 SP4 are now available!

时间 2014-10-02 00:00:00 SQL Server Team Blog 原文  http://blogs.technet.com/b/dataplatforminsider/archive/2014/10/01/sql-server-2008-r2-sp3-and-sql-server-2008-sp4-are-now-available.aspx 主题 SQL Server SQL Microsoft is pleased to announce the release of

sql 2008 链接服务器到 sql 2000

sql server 2008 (x64)上做链接服务器,链接sql server 2000(x86)上的数据库,出现如下错误: 链接服务器"(null)"的 OLE DB 访问接口 "SQLNCLI10" 返回了消息 "未指定的错误".链接服务器"(null)"的 OLE DB 访问接口 "SQLNCLI10" 返回了消息 "在该服务器上找不到完成该操作所需的存储过程.请与系统管理员联系.&qu

【SQL 问题】试用版SQL Server 2008 R2 提示评估期已过,数据库不能访问解决办法

因为以前一直是试用版,重启服务器之后,突然数据库不能访问,提示评估期已过,都快吓死了.还好找到了解决办法特copy解决步骤如下: (笔者用的是企业版: R88PF-GMCFT-KM2KR-4R7GB-43K4B) 第一步:进入SQL2008配置工具中的安装中心第二步:再进入维护界面,选择版本升级第三步:进入产品密钥,输入密钥第四步:一直点下一步,直到升级完毕.SQL Server 2008 Developer: PTTFM-X467G-P7RH2-3Q6CG-4DMYB SQL Server 2

使用SQL Server 2008远程链接时SQL数据库不成功的解决方法

远程连接SQL Server 2008,服务器端和客户端配置 关键设置: 第一步(SQL2005.SQL2008): 开始-->程序-->Microsoft SQL Server 2008(或2005)-->配置工具-->SQL Server 配置管理器-->SQL Server网络配置-->MSSQLSERVER(这个名称以具体实例名为准) 的协议-->TCP/IP-->右键-->启用 第二步: SQL2005: 开始-->程序-->Mi

windows server 2008 R2 SP1 安装SQL Server 2008 R2时提示 "此操作系统不支持此版本的 SQL Server 版本"

windows server 2008 R2 SP1 安装SQL Server 2008 R2时提示 "此操作系统不支持此版本的 SQL Server 版本" 原因: 安装的时候输入了标准版的key ,换成企业版的key 就行了. 福利 企业版64位 key : GYF3T-H2V88-GRPPH-HWRJP-QRTYB

HTML5 离线存储之Web SQL

HTML5 在离线存储之Web SQL 本篇没有考虑异步,多线程及SQL注入 WebDatabase 规范中说这份规范不再维护了,原因是同质化(几乎实现者都选择了Sqlite), 且不说这些,单看在HTML5中如何实现离线数据的CRUD,最基本的用法(入门级别)  1,打开数据库 2,创建表 3,新增数据 4,更新数据 5,读取数据 6,删除数据 事实上,关键点在于如何拿到一个可执行SQL语句的上下文, 像创建表,删除表,CRUD操作等仅区别于SQL语句的写法.OK,貌似"SqlHelper&q

(转)HTML 5离线存储之Web SQL

原文:http://developer.51cto.com/art/201106/267357.htm HTML 5离线存储之Web SQL 2011-06-07 15:14 kkun kkun的博客 字号:T | T WebDatabase 规范中说这份规范不再维护了,原因是同质化(几乎实现者都选择了Sqlite), 且不说这些,单看在HTML5中如何实现离线数据的CRUD,最基本的用法(入门级别) AD:51CTO学院:IT精品课程在线看! 本篇没有考虑异步,多线程及SQL注入 WebDat