图片保存到数据库和从数据库读取图片并显示(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;
            }
        }

上一篇:面向对象的多态:接口


下一篇:Java学习笔记09