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


          图片保存到数据库的方法:
           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;
                }
            }
  • 相关阅读:
    Writing Layout Tests for DumpRenderTree – WebKit
    阻碍Web开放的不是WebKit,而是Web开发者的短视
    Running Selenium 'headless' with Chrome Driver in Python YouTube
    百度开发者大会:愿与开发者合作共赢
    Nginx进行流量copy到测试环境
    Minimize to tray 1.3.2.61
    Smart Caching for Web Browsers
    Objective of the Guidelines
    美丽说胡嵩:APP只做一件事 价值定位要清晰 | 马可咪
    Writing Layout Tests for DumpRenderTree – WebKit
  • 原文地址:https://www.cnblogs.com/easypass/p/1632380.html
Copyright © 2020-2023  润新知