目录

1.选择本地图片并存进数据库

2.Save()方法

3.从数据库读取照片


最近项目要需要上传与下载图片,想了想如何存储图片,可以用本地路径与用二进制数据存储到数据库。最后权衡利弊决定将图片存进数据库。本文详细讲解了如何将图片存进SQL数据库,以及如何从SQL数据库中读取图片。希望大家能够有所收获!!!

1.选择本地图片并存进数据库

/// <summary>
/// 将图片存进数据库
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button2_Click(object sender, EventArgs e)
{//点击按钮弹出对话框//选中图片,为Img的属性OpenFileDialog ofd = new OpenFileDialog();  //打开文件ofd.Title = "请选择图片文件";//弹出框的标题ofd.InitialDirectory = System.Environment.GetFolderPath(Environment.SpecialFolder.MyPictures);//设置系统目录// ofd.InitialDirectory = @"C:\Users\Administrator\Pictures";//设置系统目录ofd.Filter = "(*.jpg)|*.jpg";if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK){this.pictureBox1.Image = Image.FromStream(ofd.OpenFile());  //获取当前选择的图片string path = ofd.FileName.ToString(); //获取当前图片的路径FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read); //将指定路径的图片添加到FileStream类中BinaryReader br = new BinaryReader(fs);//通过FileStream对象实例化BinaryReader对象byte[] imgBytesIn = br.ReadBytes(Convert.ToInt32(fs.Length));//将图片转为二进制数据Save(imgBytesIn);//调用(自己写的一个方法)}}

2.Save()方法

/// <summary>
/// 存进数据库
/// </summary>
/// <param name="imgBytesIn">二进制数据</param>
private void Save(byte[] imgBytesIn)
{try{   //连接数据库SqlConnection con = new SqlConnection("server=192.168.111.100;uid=sa;pwd=123456;database=Chargetest");//连接本地数据库con.Open();SqlCommand cmd = new SqlCommand("insert into image (Img_url) values(@Image);", con); //SQL语句cmd.Parameters.Add("@Image", SqlDbType.Image);cmd.Parameters["@Image"].Value = imgBytesIn;cmd.ExecuteNonQuery();con.Close();MessageBox.Show("图片上传成功");}catch{MessageBox.Show("您选择的图片不能被读取或文件类型不对!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Warning);}}

3.从数据库读取照片

/// <summary>
/// 从数据库读取图片
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{byte[] MyData = new byte[0];using (SqlConnection conn = new SqlConnection("server=ZYB;Database =Chargetest; User ID = sa;Password =123456")){conn.Open();SqlCommand cmd = new SqlCommand();cmd.Connection = conn;cmd.CommandText = "select * from image where Id=14"; //写自己要查图片的主键SqlDataReader sdr = cmd.ExecuteReader();sdr.Read();object o = sdr["img_url"];MyData = (byte[])sdr["img_url"];//读取第一个图片的位流MemoryStream memoryStream = null;memoryStream = new MemoryStream(MyData);pictureBox1.Image = Image.FromStream(memoryStream);//将图片赋给pictureBox1控件MessageBox.Show("读取成功");}
}

如果本篇博客对您有一定的帮助,大家记得留言+点赞哦。

如何将图片存进SQL数据库中以及从数据库读取照片(解决办法)相关推荐

  1. 向sqlserver数据库中传递类似数组的参数解决办法

    向sqlserver数据库中传递类似数组的参数解决办法 关于sqlserver数据库存储过程传递varchar类型参数(后端给出参数格式 '1,2,3').但是查询始终没有结果,但是直接写在语句中确实 ...

  2. oracle sum函数返回空,关于SQL语句中SUM函数返回NULL的解决办法

    SUM 是SQL语句中的标准求和函数,如果没有符合条件的记录,那么SUM函数会返回NULL. 但多数情况下,我们希望如果没有符合条件记录的情况下,我们希望它返回0,而不是NULL,那么我们可以使用例如 ...

  3. 在 sql server 中,查询 数据库的大小 和 数据库中各表的大小

    2019独角兽企业重金招聘Python工程师标准>>> 在 sql server 中,查询 数据库的大小 和 数据库中各表的大小 其实本来只想找一个方法能查询一下 数据库 的大小,没 ...

  4. sql数据库备份默认路径_在Linux上SQL Server中更改默认数据库文件和备份路径

    sql数据库备份默认路径 In a previous article, we explored the process to change default SQL dump file location ...

  5. 【问】SQL 2012中如何还原数据库?

    [问题描述] SQL 2012中如何还原数据库? [答] 还原的方法如下: 1.登录SQL Server Management Studio 2.左边列表处选择"数据库"--&qu ...

  6. 如何在SQL Server中附加Pubs数据库

    在本教程中,我将解释如何 在SQL Server中 附加Pubs数据库  . 每个其他数据库的过程都是相同的. 您需要将Pubs MDF和LDF文件附加到SQL Server. 请注意,Northwi ...

  7. C#同步SQL Server数据库中的数据--数据库同步工具[同步已有的有变化的数据]

    C#同步SQL Server数据库中的数据--数据库同步工具[同步已有的有变化的数据] 1. C#同步SQL Server数据库Schema 2. C#同步SQL Server数据库中的数据--数据库 ...

  8. SQL Server 数据库没有有效所有者的三种解决办法

    问题描述: 开发的过程中,操作系统出了问题,决定重装系统.但是没有将SQL Server中的数据库文件分离出来,直接将系统格了.在新系统数据库中附加了数据库文件,一切还算正常,但当打开数据库关系图的时 ...

  9. mysql数据库的字符集_mysql数据库中字符集乱码问题原因及解决

    前言 有的时候我们在查看数据库数据时,会看到乱码.实际上,无论何种数据库只要出现乱码问题,这大多是由于数据库字符集设定的问题. 下面我们就介绍一下,数据库的字符集的设定及乱码问题的解决. mysql数 ...

最新文章

  1. ros安装orocos造成工作空间编译不通过
  2. BZOJ 1370: [Baltic2003]Gang团伙 [并查集 拆点 | 种类并查集WA]
  3. 进程与线程 thread (二)——线程概念
  4. 【机器学习基础】机器学习模型的度量选择(下)
  5. 【蓝桥杯Java_C组·从零开始卷】第一节、环境与变量类型运算符与类型分析
  6. Spartan-II 应用指南 转载
  7. 移动端隐藏滚动条(最全面)
  8. python判断密码强度_python实现密码强度校验
  9. html5.0笔记,动易sf5.0标签笔记.doc
  10. Python基础----Matplotlib_新增
  11. 关于ajax请求controller返回中文乱码的解决方法!
  12. VHDL实现交通灯程序
  13. PCL中3D点云特征描述与提取(一)
  14. VSTO入门学习笔记5-数组
  15. python10的负n次方_python中n次方怎么表示
  16. SpringBoot使用银联支付
  17. 爬虫爬取图片并保存到电脑
  18. 鸽群优化算法(Pigeon-inspired Optimization algorithm, PIO)附matlab代码
  19. 数据分析与挖掘(一)误差与精度
  20. mysql_java.sql.SQLException: null, message from server: Host 'xxx' is not allowed to connect

热门文章

  1. Android UI系列之侧滑粘稠效果的实现
  2. 基于QT实现的可视化链表(单链表、循环链表、双向链表)
  3. 3w最简单led灯电路图_一款简单实用的LED灯驱动电路
  4. 第9章第8节:制作过渡页幻灯片的版式 [PowerPoint精美幻灯片实战教程]
  5. python opencv 利用HSV,YUV(YCbCr)实现皮肤检测与抠图,与磨皮美颜
  6. Java计算税后工资和税前工资推算
  7. QingCloud Insight 2016 | 科技,洞见未来
  8. 本科,硕士们进了BAT拿高工资,为什么博士却要挤破头低薪进985高校?
  9. lol微信登录服务器,lol开放微信登录功能 lol微信怎么登陆
  10. Visio录制宏代码——重复批量导出600dpi的tiff图片