• C#操作SQLserver的图片(读取和存储)


    一,用C#将Image转换成byte[]并插入数据库: 

       1.1 将图片控件的Image转换成流:

      private byte[]  PicToArray()
            {
              
                Bitmap bm = new Bitmap(picBox.Image);
                MemoryStream ms = new MemoryStream();
                bm.Save(ms, ImageFormat.Jpeg);
                return ms.GetBuffer();
    
            }
            
        //保存到数据库
          try { string sql = "update T_Employee set ImageLogo=@ImageLogo where EmpId=@EmpId"; SqlHelper.ExecuteNonQuery(sql, new SqlParameter("@ImageLogo", imgSourse)); MessageBox.Show("修改已保存!");// ShowInfo(0); } catch (Exception ex) { MessageBox.Show("更新失败!" + ex.Message); return; }

      1.2将图片文件转换成字节流并插入数据库:

     class ImageInserter
        {
            public static int InsertImg(string path)
            {
               
                //----------以文件的方式读取图片并转化成字节流
                FileStream fs = new FileStream(path,FileMode.Open);
                byte[] imgSourse = new byte[fs.Length];
                fs.Read(imgSourse,0,imgSourse.Length);
                fs.Close();
    
                using (SqlConnection conn = new SqlConnection(SqlHelper.connStr))
                {
                    conn.Open();
    
                    using (SqlCommand cmd = conn.CreateCommand())
                    {
                        cmd.CommandText = "update T_Employee set  ImageLogo=@ImageLogo";
                      //  cmd.Parameters.Add("@ImageLogo", SqlDbType.Image);
                        cmd.Parameters.Add(new SqlParameter("@ImageLogo", imgSourse));
    
                        return cmd.ExecuteNonQuery();
                    }
                }
           }

    二、将图片数据从SQLserver中取出来并显示到pictureBox控件上:

      

           byte[] ImageLogoArray = row["ImageLogo"] is DBNull ? null :(byte[])(row["ImageLogo"]);
                MemoryStream ms=null;
                if (ImageLogoArray!=null)
                {
                    ms = new MemoryStream(ImageLogoArray);
                    picBox.Image = new Bitmap(ms);
                }
  • 相关阅读:
    线程锁(互斥锁Mutex)及递归锁
    threading模块,python下的多线程
    笔试面试题实现
    Socket编程,SocketServer模块
    iOS开发- 文件共享(利用iTunes导入文件, 并且显示已有文件)
    iOS 根据文件名获取到文件路径
    IOS UILabel自动换行
    🐤小记
    iOS 获取当前月份的天数(转)、
    IOS 在Ipad 横屏 上使用UIImagePickerController
  • 原文地址:https://www.cnblogs.com/skybreak/p/2947642.html
Copyright © 2020-2023  润新知