C#_圖片存取資料庫Winform

來源:互聯網
上載者:User

標籤:file   exception   空間名   build   builder   button   ldb   and   length   

     #region 用於在PictureBox控制項中顯示選擇的圖片
        /// <summary>
        /// 用於在PictureBox控制項中顯示選擇的圖片
        /// </summary>
        /// <param name="openF">映像名</param>
        /// <param name="MyImage">pictureBox控制項ID</param>
        public void Read_Image(OpenFileDialog openF, PictureBox MyImage)//顯示選擇的圖片
        {
            //指定OpenFileDialog控制項開啟的檔案格式
            openF.Filter = "*.jpg|*.jpg|*.bmp|*.bmp";
            if (openF.ShowDialog()==DialogResult.OK)
            {
                try
                {
                    //將圖片檔案存入到PictureBox控制項中
                    MyImage.Image = System.Drawing.Image.FromFile(openF.FileName);
                }
                catch (Exception)
                {
                    //彈出錯誤資訊
                    MessageBox.Show("您選擇的圖片不能被讀取或檔案類型不對!","錯誤",MessageBoxButtons.OK,MessageBoxIcon.Warning);
                    throw;
                }
            }
        }

        #endregion

        #region 用於將圖片以二進位形式存入資料庫中
        /// <summary>
        /// 用於將圖片以二進位形式存入資料庫中
        /// </summary>
        /// <param name="FilmID">影片ID</param>
        /// <param name="openF"></param>
        public void SaveImage(string FilmID, 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);//將流讀入到位元組數組中
            SqlConnection conn = sqlhelper.getcon();
            conn.Open();
            StringBuilder strSql = new StringBuilder();
            strSql.Append("update T_Film Set [email protected] where F_FId=" + FilmID);
            SqlCommand cmd = new SqlCommand(strSql.ToString(), conn);
            cmd.Parameters.Add("@Photo", SqlDbType.Binary).Value = imgBytesIn;
            cmd.ExecuteNonQuery();
            conn.Close();
        }
        #endregion

        #region 用於將圖片從資料庫中取出並顯示在PictureBox控制項中
        /// <summary>
        /// 用於將圖片從資料庫中取出並顯示在PictureBox控制項中
        /// </summary>
        /// <param name="FilmID">影片ID</param>
        /// <param name="pb">PictureBox控制項ID</param>
        public void Get_Image(string FilmID, PictureBox pb)//將圖片從資料庫中取出
        {
            byte[] imagebytes = null;
            SqlConnection conn = sqlhelper.getcon();
            conn.Open();
            SqlCommand com = new SqlCommand("select * from T_Film where F_FId=‘" + FilmID + "‘", conn);
            SqlDataReader dr = com.ExecuteReader();
            while (dr.Read())
            {
                imagebytes = (byte[])dr.GetValue(10);
            }
            dr.Close();
            conn.Close();
            MemoryStream ms = new MemoryStream(imagebytes);
            Bitmap bmpt = new Bitmap(ms);
            pb.Image = bmpt;
        }        
        #endregion

上面三個分別為公用類,第一個為開啟對話方塊,第二個為將映像以二進位存入資料庫,第三個為從資料庫中讀取出來。

在表單代碼中, Mymenu.Get_Image(FilmID, picboxPhoto);直接用就可以了(Mymenu)為公用類空間名稱

C#_圖片存取資料庫Winform

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.