• 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;//图片绑定到控件         }

  • 相关阅读:
    白盒测试
    测试闰年
    黑盒测试
    等价类划分(2)
    等价类的划分
    《挑战程序设计竞赛》2.3 动态规划-优化递推 POJ1742 3046 3181
    《挑战程序设计竞赛》2.5 最短路 AOJ0189 2249 2200 POJ3255 2139 3259 3268(5)
    《挑战程序设计竞赛》2.6 数学问题-快速幂运算 POJ1995
    《挑战程序设计竞赛》2.6 数学问题-素数 AOJ0009 POJ3126 3421 3292 3641
    《挑战程序设计竞赛》2.6 数学问题-辗转相除法 AOJ0005 POJ2429 1930(1)
  • 原文地址:https://www.cnblogs.com/xiaowei-blog/p/4174094.html
Copyright © 2020-2023  润新知