zoukankan      html  css  js  c++  java
  • 图片保存到数据库和从数据库读取图片并显示(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;
                }
            }
  • 相关阅读:
    [LeetCode] Add Two Numbers
    [LeetCode] Two Sum
    解决 wget 使用 https 下载报错的问题
    VMware Player 使用笔记
    使用 linux 作为桌面系统会遇到的一些小问题和解决方案
    CUDA 6.5 + Visual Studio 2013 Express 环境配置
    康威生命游戏(Conway's Game of Life)的一种实现
    微软校招编程题"Beautiful String"的状态机解法
    利用html5的本地存储写的一个购物车
    微信开发asp.net
  • 原文地址:https://www.cnblogs.com/tuyile006/p/614718.html
Copyright © 2011-2022 走看看