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);
            }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM