• sqlserver数据库存取图片


       public void SaveImage(string MID, OpenFileDialog openF)//将图片以二进制存入数据库中
            {
                string strimg = openF.FileName.ToString();  //记录图片的所在路径
                FileStream fs = new FileStream(strimg, FileMode.Open, FileAccess.Read); //将图片以文件流的形式进行保存
                BinaryReader br = new BinaryReader(fs);
                byte[] imgBytesIn= br.ReadBytes((int)fs.Length);  //将流读入到字节数组中
                conn.Open();
                StringBuilder strSql = new StringBuilder();
                strSql.Append("update tb_employee Set employeePhoto=@Photo where employeeID=" + MID);
                SqlCommand cmd = new SqlCommand(strSql.ToString(), conn);
                cmd.Parameters.Add("@Photo", SqlDbType.Binary).Value = imgBytesIn;
                cmd.ExecuteNonQuery();
                conn.Close();
            }
            public void Get_Image(string ygname,PictureBox pb)//将图片从数据库中取出
            {
                byte[] imagebytes = null;
                conn.Open();
                SqlCommand com = new SqlCommand("select * from tb_employee where employeeID='" + ygname + "'", conn);
                SqlDataReader dr = com.ExecuteReader();
                while (dr.Read())
                {
                    imagebytes = (byte[])dr.GetValue(11);
                }
                dr.Close();
                conn.Close();
                MemoryStream ms = new MemoryStream(imagebytes);
                Bitmap bmpt = new Bitmap(ms);
                pb.Image = bmpt;
            }

    public void Read_Image(OpenFileDialog openF, PictureBox MyImage)  //显示选择的图片
            {
                openF.Filter = "*.jpg|*.jpg|*.bmp|*.bmp";   //指定OpenFileDialog控件打开的文件格式
                if (openF.ShowDialog() == DialogResult.OK)  //如果打开了图片文件
                {
                    try
                    {
                        MyImage.Image = System.Drawing.Image.FromFile(openF.FileName);  //将图片文件存入到PictureBox控件中
                    }
                    catch
                    {
                        MessageBox.Show("您选择的图片不能被读取或文件类型不对!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }
            }

    改进:

       /// <summary>         /// 从数据库中取出图片;         /// 参数:“控件”,“图片大小”,“sql相关参数”         /// </summary>         /// <param name="pbox"></param>         public void GetImage(PictureBox pbox, Size imageSize, string sql, SqlParameter[] sp, int columnIndex)         {             byte[] imageByte = null;             SqlDataReader reader = this.ExecuteReader(sql, sp);             while (reader.Read())             {                 imageByte = (byte[])reader.GetValue(columnIndex);             }             reader.Close();             MemoryStream ms = new MemoryStream(imageByte);             // Bitmap bmpt = new Bitmap(ms);                    //  pbox.Image = bmpt;//图片绑定到控件

                Bitmap bm = (Bitmap)Image.FromStream(ms);             ms.Close();

                Bitmap bp = new Bitmap(bm, imageSize);//将指定图片缩放到指定大小             pbox.Width = imageSize.Width;             pbox.Height = imageSize.Height;             pbox.Image = bp;//图片绑定到控件         }

  • 相关阅读:
    BOM和DOM的操作
    JS介绍
    CSS
    HTML的用法
    JSP获取json格式的数据报错 Uncaught SyntaxError: Unexpected identifier
    jquery.nicescroll.min.js滚动条插件的用法
    css鼠标滑过出现文字效果
    sublime text3安装js提示的插件
    利用after和before伪元素在文字两边写横线
    html+css居中问题
  • 原文地址:https://www.cnblogs.com/xiaowei-blog/p/4174094.html
Copyright © 2020-2023  润新知