当前位置: 首页 > news >正文

图片保存到数据库和从数据库读取图片并显示(C#)(转)

图片保存到数据库的方法:

        public void imgToDB(string sql)
        {   //参数sql中要求保存的imge变量名称为@images
            //调用方法如:imgToDB("update UserPhoto set Photo=@images where UserNo='" + temp + "'");
            FileStream fs = File.OpenRead(t_photo.Text);
            byte[] imageb = new byte[fs.Length];
            fs.Read(imageb, 0, imageb.Length);
            fs.Close();
            SqlCommand com3 = new SqlCommand (sql,con);
            com3.Parameters.Add("@images", SqlDbType.Image).Value = imageb;
            if (com3.Connection.State == ConnectionState.Closed)
                com3.Connection.Open();
            try
            {
                com3.ExecuteNonQuery();
            }
            catch
            { }
            finally
            { com3.Connection.Close(); }
        }

数据库中读出图片并显示在picturebox中:

方法一:
private void ShowImage(string sql)
     {
     //调用方法如:ShowImage("select Photo from UserPhoto where UserNo='" + userno +"'");
     SqlCommand cmd = new SqlCommand(sql, conn);
     conn.Open();
     byte[] b= (byte[])cmd.ExecuteScalar();
     if (b.Length 〉 0)
     {
     MemoryStream stream = new MemoryStream(b, true);
     stream.Write(b, 0, b.Length);
     pictureBox1.Image = new Bitmap(stream);
     stream.Close();
     }
     conn.Close();
     }

方法二:当在dg中选中某行时:
  private void dg_MouseUp(object sender, MouseEventArgs e)
        {
            //整行选择
            if (e.Button == System.Windows.Forms.MouseButtons.Left)
            {//用户编号,姓名,性别,身份证号,籍贯,学院,系所,校区,部门,电话,照片
                 //显示相片
                object imgobj=dg[10, dg.CurrentRow.Index].Value;
                if (imgobj != null && !Convert.IsDBNull(imgobj))
                {
                    byte[] imgb = (byte[])imgobj;
                    MemoryStream memStream = new MemoryStream(imgb);
                    try
                    {
                        Bitmap myimge = new Bitmap(memStream);
                        this.pictureBox1.Image = myimge;
                    }
                    catch
                    {
                        DB.msgbox("从数据库读取相片失败!");
                    }
                }
                else
                    pictureBox1.Image = null;
            }
        }

转载于:https://www.cnblogs.com/arongbest/archive/2009/05/07/1451922.html

相关文章:

  • U盘上的Ubuntu--Ubuntu手记之系统配置
  • 临近毕业一年的生活状态
  • 获取所有子节点 父亲节点
  • K2 BlackPearl Installation and Configuration [K2 BlackPearl 安装部署]
  • 为IE的iframe元素应用背景或透明背景
  • 苹果用贪婪堵住了iPhone进入中国之路
  • HDOJ2013
  • 最新下载Windows Server 2008 with Service Pack2(X86/X64)官方简体中文版光盘镜像
  • 如何启用AutoTrace 查看SQL执行计划
  • SSL
  • Sql语句之更新字段但是还是赋原来的值【整理】
  • 《Foundation Actionscript3.0 Animation》读书笔记一:三角学应用
  • mapper--图片热点区域高亮组件
  • 更加务实的IT 战略规划
  • CCNP之IPv6技术-静态路由
  • 【React系列】如何构建React应用程序
  • 08.Android之View事件问题
  • 78. Subsets
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • Brief introduction of how to 'Call, Apply and Bind'
  • ECMAScript6(0):ES6简明参考手册
  • ESLint简单操作
  • java8-模拟hadoop
  • JavaScript 事件——“事件类型”中“HTML5事件”的注意要点
  • Java的Interrupt与线程中断
  • k8s如何管理Pod
  • Python连接Oracle
  • React系列之 Redux 架构模式
  • 笨办法学C 练习34:动态数组
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 精彩代码 vue.js
  • 面试总结JavaScript篇
  • 使用parted解决大于2T的磁盘分区
  • 我建了一个叫Hello World的项目
  • 一个项目push到多个远程Git仓库
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • #微信小程序:微信小程序常见的配置传旨
  • $jQuery 重写Alert样式方法
  • (20050108)又读《平凡的世界》
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (二)Linux——Linux常用指令
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting
  • .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖
  • .Net8 Blazor 尝鲜
  • .Net中的设计模式——Factory Method模式
  • .ui文件相关
  • @GetMapping和@RequestMapping的区别
  • @kafkalistener消费不到消息_消息队列对战之RabbitMq 大战 kafka
  • [3D基础]理解计算机3D图形学中的坐标系变换
  • [Bzoj4722]由乃(线段树好题)(倍增处理模数小快速幂)
  • [ESP32] 编码旋钮驱动
  • [HOW TO]如何在iPhone应用程序中发送邮件
  • [LeetCode] 178. 分数排名
  • [leetcode]114. Flatten Binary Tree to Linked List由二叉树构建链表