如何将图片存进SQL数据库中以及从数据库读取照片(解决办法)
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数据库中以及从数据库读取照片(解决办法)相关推荐
- 向sqlserver数据库中传递类似数组的参数解决办法
向sqlserver数据库中传递类似数组的参数解决办法 关于sqlserver数据库存储过程传递varchar类型参数(后端给出参数格式 '1,2,3').但是查询始终没有结果,但是直接写在语句中确实 ...
- oracle sum函数返回空,关于SQL语句中SUM函数返回NULL的解决办法
SUM 是SQL语句中的标准求和函数,如果没有符合条件的记录,那么SUM函数会返回NULL. 但多数情况下,我们希望如果没有符合条件记录的情况下,我们希望它返回0,而不是NULL,那么我们可以使用例如 ...
- 在 sql server 中,查询 数据库的大小 和 数据库中各表的大小
2019独角兽企业重金招聘Python工程师标准>>> 在 sql server 中,查询 数据库的大小 和 数据库中各表的大小 其实本来只想找一个方法能查询一下 数据库 的大小,没 ...
- sql数据库备份默认路径_在Linux上SQL Server中更改默认数据库文件和备份路径
sql数据库备份默认路径 In a previous article, we explored the process to change default SQL dump file location ...
- 【问】SQL 2012中如何还原数据库?
[问题描述] SQL 2012中如何还原数据库? [答] 还原的方法如下: 1.登录SQL Server Management Studio 2.左边列表处选择"数据库"--&qu ...
- 如何在SQL Server中附加Pubs数据库
在本教程中,我将解释如何 在SQL Server中 附加Pubs数据库 . 每个其他数据库的过程都是相同的. 您需要将Pubs MDF和LDF文件附加到SQL Server. 请注意,Northwi ...
- C#同步SQL Server数据库中的数据--数据库同步工具[同步已有的有变化的数据]
C#同步SQL Server数据库中的数据--数据库同步工具[同步已有的有变化的数据] 1. C#同步SQL Server数据库Schema 2. C#同步SQL Server数据库中的数据--数据库 ...
- SQL Server 数据库没有有效所有者的三种解决办法
问题描述: 开发的过程中,操作系统出了问题,决定重装系统.但是没有将SQL Server中的数据库文件分离出来,直接将系统格了.在新系统数据库中附加了数据库文件,一切还算正常,但当打开数据库关系图的时 ...
- mysql数据库的字符集_mysql数据库中字符集乱码问题原因及解决
前言 有的时候我们在查看数据库数据时,会看到乱码.实际上,无论何种数据库只要出现乱码问题,这大多是由于数据库字符集设定的问题. 下面我们就介绍一下,数据库的字符集的设定及乱码问题的解决. mysql数 ...
最新文章
- ros安装orocos造成工作空间编译不通过
- BZOJ 1370: [Baltic2003]Gang团伙 [并查集 拆点 | 种类并查集WA]
- 进程与线程 thread (二)——线程概念
- 【机器学习基础】机器学习模型的度量选择(下)
- 【蓝桥杯Java_C组·从零开始卷】第一节、环境与变量类型运算符与类型分析
- Spartan-II 应用指南 转载
- 移动端隐藏滚动条(最全面)
- python判断密码强度_python实现密码强度校验
- html5.0笔记,动易sf5.0标签笔记.doc
- Python基础----Matplotlib_新增
- 关于ajax请求controller返回中文乱码的解决方法!
- VHDL实现交通灯程序
- PCL中3D点云特征描述与提取(一)
- VSTO入门学习笔记5-数组
- python10的负n次方_python中n次方怎么表示
- SpringBoot使用银联支付
- 爬虫爬取图片并保存到电脑
- 鸽群优化算法(Pigeon-inspired Optimization algorithm, PIO)附matlab代码
- 数据分析与挖掘(一)误差与精度
- mysql_java.sql.SQLException: null, message from server: Host 'xxx' is not allowed to connect
热门文章
- Android UI系列之侧滑粘稠效果的实现
- 基于QT实现的可视化链表(单链表、循环链表、双向链表)
- 3w最简单led灯电路图_一款简单实用的LED灯驱动电路
- 第9章第8节:制作过渡页幻灯片的版式 [PowerPoint精美幻灯片实战教程]
- python opencv 利用HSV,YUV(YCbCr)实现皮肤检测与抠图,与磨皮美颜
- Java计算税后工资和税前工资推算
- QingCloud Insight 2016 | 科技,洞见未来
- 本科,硕士们进了BAT拿高工资,为什么博士却要挤破头低薪进985高校?
- lol微信登录服务器,lol开放微信登录功能 lol微信怎么登陆
- Visio录制宏代码——重复批量导出600dpi的tiff图片