zoukankan      html  css  js  c++  java
  • SQL 2008存储图片和读取图片

           用SQL Server存储文字数据非常easy实现,假设用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人士都知道,学计算机学久了会养成一种计算机思维,用这样的思维来解决平时遇到的问题,我想说我中招了。

  • 相关阅读:
    linux常用命令
    chattr无法删除某个文件
    centos如何卸载软件
    linux命令行下的ftp 多文件下载和目录下载
    yum -y upgrade 和 yum -y update 区别
    Pureftpd
    centos rar安装
    linux系统数据盘挂载教程
    anyexec
    _variant_t
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5318300.html
Copyright © 2011-2022 走看看