如何将图片存进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("读取成功");
       }
}
相关文章
|
12月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1775 152
|
12月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
1200 156
|
SQL 存储 关系型数据库
第二篇:关系型数据库的核心概念与 SQL 基础
本篇内容深入浅出地讲解了关系型数据库的核心概念与SQL基础,适合有一定计算机基础的学习者。文章涵盖数据库的基本操作(CRUD)、数据类型、表的创建与管理等内容,并通过实例解析SELECT、INSERT、UPDATE、DELETE等语句的用法。此外,还推荐了多种学习资源与实践建议,帮助读者巩固知识。学完后,你将掌握基础数据库操作,为后续高级学习铺平道路。
897 1
|
SQL 数据库 数据安全/隐私保护
数据库数据恢复——sql server数据库被加密的数据恢复案例
SQL server数据库数据故障: SQL server数据库被加密,无法使用。 数据库MDF、LDF、log日志文件名字被篡改。 数据库备份被加密,文件名字被篡改。
|
SQL 关系型数据库 MySQL
Go语言数据库编程:使用 `database/sql` 与 MySQL/PostgreSQL
Go语言通过`database/sql`标准库提供统一数据库操作接口,支持MySQL、PostgreSQL等多种数据库。本文介绍了驱动安装、连接数据库、基本增删改查操作、预处理语句、事务处理及错误管理等内容,涵盖实际开发中常用的技巧与注意事项,适合快速掌握Go语言数据库编程基础。
1705 213
|
12月前
|
SQL 人工智能 Linux
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
892 5
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
|
11月前
|
SQL 存储 监控
SQL日志优化策略:提升数据库日志记录效率
通过以上方法结合起来运行调整方案, 可以显著地提升SQL环境下面向各种搜索引擎服务平台所需要满足标准条件下之数据库登记作业流程综合表现; 同时还能确保系统稳健运行并满越用户体验预期目标.
495 6
|
12月前
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
SQL Oracle 关系型数据库
Oracle数据库创建表空间和索引的SQL语法示例
以上SQL语法提供了一种标准方式去组织Oracle数据库内部结构,并且通过合理使用可以显著改善查询速度及整体性能。需要注意,在实际应用过程当中应该根据具体业务需求、系统资源状况以及预期目标去合理规划并调整参数设置以达到最佳效果。
729 8
|
SQL 人工智能 Java
用 LangChain4j+Ollama 打造 Text-to-SQL AI Agent,数据库想问就问
本文介绍了如何利用AI技术简化SQL查询操作,让不懂技术的用户也能轻松从数据库中获取信息。通过本地部署PostgreSQL数据库和Ollama模型,结合Java代码,实现将自然语言问题自动转换为SQL查询,并将结果以易懂的方式呈现。整个流程简单直观,适合初学者动手实践,同时也展示了AI在数据查询中的潜力与局限。
1537 8

热门文章

最新文章