软件问答

软件问答

设计软件问答为您提供设计软件的相关问题咨询与解答,印刷案例规格及印刷报价,让您实时了解设计软件的各类相关问题及印刷相关问题,并提供设计时的注意事项,为您提供各设计软件的相关问题解决方案

当前位置:网站首页 > 印刷问答 > 软件问答 > 正文

数据库如何存取图片?

吉印通 2021-05-30 487

数据库存图片的方式以下两种:

在数据库中存储图片文件的文件名或存储路径(本地路径或者网络路径)这是最常用的方式,即是将图片的存储的完整路径或文件名以字符串的方式存入到数据库中,读取效率高、而且便于维护pic文件。实现的方法也比较简单,拿最常见的使用场景来说吧,比如用户注册时,需要他上传了一张照片,常见做法就是使用文件控件FileUpload让用户选择电脑的上面的图片,然后将其选择的图片所在的路径及文件名获取,将文件上传后同时将文件名保存到数据库对应的表中,显示图片时只需要从数据库中获取文件名并构造完整路径即可。

ASP.NET

代码如下:

//获取FileUpload控件选取图片后的文件路径

strng filepath=FileUpload1.PostedFile.FileName;

//获取图片文件名,即从图片路径字符串中获取最后\\的那段

string filename=filepath.Substring(filepath.LastIndexOf("\\")+1);

//然后执行文件上传pic文件,将文件保存到服务器指定的目录,如在程序目录下建立一个PIC文件夹保存文件

FileUpload1.PostedFile.SaveAs(Server.MapPath("PIC/")+filename);

上传成功后,将文件名filename字符串插入数据库即可pic文件。

显示时将filename从数据取出,用Image1.ImageUrl="PIC/"+filename 显示pic文件。

将图片文件转为二进制文件流保存到数据库,显示时再二进制转为文件这种方式很少用,因为图片包含的信息比较多,转为二进制后存储的内容大,占用空间,而且需要转换,费时好资源pic文件。

保存图片的 核心代码如下:

//文件路径

string picturePath = @"D:\1.jpg";

//创建FileStream对象

FileStream fs = new FileStream(picturePath, FileMode.Open, FileAccess.Read);

//声明Byte数组

Byte[] mybyte = new byte[fs.Length];

//读取数据

fs.Read(mybyte, 0, mybyte.Length);

fs.Close();

//转换成二进制数据 mybyte 保存到数据库

SqlParameter prm = new SqlParameter

("@blobdata", SqlDbType.VarBinary, mybyte.Length, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current, mybyte);

command.Parameters.Add(prm);

//打开数据库连接

connection.Open();

command.ExecuteNonQuery();

connection.Close();

读取图片的核心代码如下:

//打开数据库连接

connection.Open();

//创建SQL语句

string sql = "select BLODID,BLOBData from Images order by BLODID";

//创建SqlCommand对象

SqlCommand command = new SqlCommand(sql, connection);

//创建DataAdapter对象

SqlDataAdapter dataAdapter = new SqlDataAdapter(command);

//创建DataSet对象

DataSet dataSet = new DataSet();

dataAdapter.Fill(dataSet, "BLOBTest");

int c = dataSet.Tables["BLOBTest"].Rows.Count;

if (c > 0)

Byte[] mybyte = new byte[0];

mybyte = (Byte[])(dataSet.Tables["BLOBTest"].Rows[c - 1]["BLOBData"]);

MemoryStream ms = new MemoryStream(mybyte);

//显示图片

pictureBox1.Image = Image.FromStream(ms);

connection.Close();

相关推荐

  • 沈阳画册印刷

    沈阳画册印刷

    沈阳画册印刷厂家,画册印刷公司为您提供画册印刷咨询,画册印刷案例,画册印刷规格及画册印刷报价,让您实时了解画册印刷厂家的最新规格及报价,并提供画册印刷时的注意事项,印刷出让您满意的画册印刷产品。

    2023-01-14 32

  • 关于北京画册吉印通
的信息

    关于北京画册吉印通 的信息

    021yin.com。人保寿险如果您有实力有梦想,想挑战高薪,想有最高的福利待遇,请加盟中国人保!一、招聘年龄:2*-**岁,大专以上学历,两年工作经验,无保险经验从事过销售人员优先。具有很好的语言表达能力及沟通能力,经培训后,能独...

    2022-08-24 63

  • 【上海KT板写真印刷】|写真kt板与kt板区别

    【上海KT板写真印刷】|写真kt板与kt板区别

    1、更多商机对接请登录手机网站联系时,请说是在爆料一经采用将支付*0元爆料一经采用将支付*0元爆料一经采用将支。2、欢迎前来吉印通网实力旺铺,选购上海同城广告设计展会写真喷绘KT板画面展板制作安装展览展会服务,该商品由上海冉岚广告店铺...

    2022-05-17 124

  • 大兴波普公社附近做企业宣传册公司 专业企业画册设计公司

    大兴波普公社附近做企业宣传册公司 专业企业画册设计公司

      提供专业设计、品牌设计,提供一流服务,公司本着质量为天诚信是金效率为要创新是魂的经营理念。  供应大兴LOGO设计、大兴VI设计公司、大兴企业宣传册设计公司、大兴企业形象设计、大兴企业视觉识别系统设计、logo设计、广告设计、画册设...

    2022-03-02 865

  • 牛皮纸是用来画什么的

    牛皮纸是用来画什么的

    牛皮纸被应用于化工、机械等各行业,特别广泛应用于食品包装行业。牛皮纸用途:牛皮纸广泛适用于各种包装用品,纸袋、手提袋牛皮纸、彩盒、礼品盒牛皮纸、印刷牛皮纸、印刷牛皮纸、笔记本牛皮纸、作业本牛皮纸、信封专用牛皮纸。食品的包装要遵循方便、便...

    2022-02-16 1250

  • 疫情期间一直宅在家里,今天翻开相册惊奇的发现……

    疫情期间一直宅在家里,今天翻开相册惊奇的发现……

      这段时间一直宅在家里,也不能去学校,翻看以前的相册,看着那些自己曾经记录下来的美好画面,突然想起自己许久没有拍照了呢。  这些都是学校的角角落落  平时大家都不会注意到的地方...

    2022-02-06 722

QQ客服咨询电话扫码报价留言评论联系我们 帮助中心返回顶部
02163063076客服电话
13816211622业务专线