• ASP.Net将图片以二进制方式存入数据库,并读取


    把图片转换成二进制--把二进制转换成图片

    复制代码
            private void button1_Click(object sender, EventArgs e)
            {
                string path = this.textBox1.Text;
                byte[] imgBytesIn = SaveImage(path);
                ShowImgByByte(imgBytesIn);
                //Parameters.Add("@Photo", SqlDbType.Binary).Value = imgBytesIn;
               
            }
            //将图片以二进制流
            public byte[] SaveImage(String path)
            {            
                FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read); //将图片以文件流的形式进行保存
                BinaryReader br = new BinaryReader(fs);
                byte[] imgBytesIn = br.ReadBytes((int)fs.Length);  //将流读入到字节数组中
                return imgBytesIn;
            }
            //现实二进制流代表的图片
            public void ShowImgByByte(byte[] imgBytesIn)
            {
                MemoryStream ms = new MemoryStream(imgBytesIn);
                pictureBox1.Image = Image.FromStream(ms);
            }
    复制代码

    二、将图片保存到数据库中,并从数据库中读取:

    复制代码
            #region 将图片从数据库中读取
            /// <summary>
            /// 将图片从数据库中读取
            /// </summary>
            /// <param name="xs_ID">要读取图片的学号</param>
            /// <param name="ph">pictureBox1控件名</param>
            public void get_photo(string xs_ID, PictureBox ph)//将图片从数据库中读取
            {
                byte[] imagebytes = null;
                getcon();
                SqlCommand con = new SqlCommand("select * from S_jiben where S_num='" + xs_ID + "'", link);
                SqlDataReader dr = con.ExecuteReader();
                while (dr.Read())
                {
                    imagebytes =(byte[])dr.GetValue(18);
                }
                dr.Close();
                con_close();
                MemoryStream ms = new MemoryStream(imagebytes);
                Bitmap bmpt = new Bitmap(ms);
                ph.Image = bmpt; 
            }
            #endregion
            #region
            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);  //将流读入到字节数组中
                getcon();
                StringBuilder strSql = new StringBuilder();
                strSql.Append("update S_jiben Set xs_photo=@Photo where S_num=" + MID);
                SqlCommand cmd = new SqlCommand(strSql.ToString(), link);
                cmd.Parameters.Add("@Photo", SqlDbType.Binary).Value = imgBytesIn;
                cmd.ExecuteNonQuery();
                con_close();
            }
            #endregion

    结伴旅游网www.jieberu.com
    推推族,免费门票获取平台 www.tuituizu.com
    Tale、车车
  • 相关阅读:
    C# 读取sqlite文件
    MongoDB聚合管道
    提取Word里的文本内容 C#
    Two Sum【LeetCode】
    Could not create SSL/TLS secure channel.
    处理Task引发的异常
    https请求抛出异常
    hexo+github page +markdown问题汇总
    通过自定义比较器排序(C#版)
    GridView固定行宽,自动换行,鼠标放在Table的Tr上变色
  • 原文地址:https://www.cnblogs.com/taleche/p/4205187.html
Copyright © 2020-2023  润新知