zoukankan      html  css  js  c++  java
  • 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;//图片绑定到控件         }

  • 相关阅读:
    Linux下Fortran多文件编译
    java用poi实现对word读取和修改操作
    SQL DATEDIFF语法及时间函数 Sql 查询当天、本周、本月记录
    深入Java集合学习系列:LinkedHashSet的实现原理
    Log4Net日志
    程序员创业如何才能成功?
    Asp.net 数据采集基类(远程抓取,分解,保存,匹配)
    response.setContentType()的String参数及对应类型
    深入Java集合学习系列:LinkedHashMap的实现原理
    深入Java集合学习系列:HashSet的实现原理
  • 原文地址:https://www.cnblogs.com/xiaowei-blog/p/4174094.html
Copyright © 2011-2022 走看看