Code up ảnh lên CSDL (Sử dụng kiểu image trong SQL server)

Đăng bởi : 3/06/2014



thuvienwinform - Để đưa anh lên CSDL ta phải tạo 1 trường trong bảng với kiểu dữ liệu là image (khi up ảnh lên sẽ chứa trong trường này). Ý tưởng là sẽ convert ảnh cần up lên CSDL thành kiểu memorystream rồi mới up lên. Khi lấy về sẽ dịch ngược lại, từ memorystream thành image!

1. Tạo CSDL



2. Code up ảnh lên CSDL


        //ảnh -> byte[]
        public byte[] imageToByteArray(System.Drawing.Image imageIn)
        {
            MemoryStream ms = new MemoryStream();
            imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
            return ms.ToArray();
        }
        //byte[] -> ảnh
        public Image byteArrayToImage(byte[] byteArrayIn)
        {
            MemoryStream ms = new MemoryStream(byteArrayIn);
            Image returnImage = Image.FromStream(ms);
            return returnImage;
        }

OK! Như vậy là bạn đã có thể up ảnh lên CSDL đc rồi!

Ví dụ sử dụng 2 hàm trên cho 2 nút btChuyenMa và btDichMa (sủ dụng LINQ):
- DB.tbImage: bảng csdl để up ảnh lên, gồm 2 trường là ID và Data


        private void btChuyenMa_Click(object sender, EventArgs e)
        {
            DB.tbImage img = new DB.tbImage();
            img.Data = imageToByteArray(ptbAnh.Image);
            
            db.tbImages.InsertOnSubmit(img);
            db.SubmitChanges();
        }

        private void btDichMa_Click(object sender, EventArgs e)
        {
            var data = (from t in db.tbImages
                        where t.ID == 0
                        select t.Data.ToArray()
                       ).SingleOrDefault();
            b = data;
            ptbLayDL.Image = byteArrayToImage(b);
        }


{ 11 comments }

  1. Mình làm như bạn mà sao cứ lỗi ở đoạn DB.tbImage img = new DB.tbImage(); nó hiểu db là type chứ ko phải là field. báo lỗi hoài ah

    ReplyDelete
    Replies
    1. Bạn gửi mã nguồn vào mail mình xem sao...ngochoaitn@gmail.com

      Delete
    2. Anonymous3/13/2022

      Code Up Ảnh Lên Csdl (Sử Dụng Kiểu Image Trong Sql Server) >>>>> Download Now

      >>>>> Download Full

      Code Up Ảnh Lên Csdl (Sử Dụng Kiểu Image Trong Sql Server) >>>>> Download LINK

      >>>>> Download Now

      Code Up Ảnh Lên Csdl (Sử Dụng Kiểu Image Trong Sql Server) >>>>> Download Full

      >>>>> Download LINK Cm

      Delete
  2. Anonymous8/23/2014

    Cho mình hỏi ? sao dùng cách này thì nó lại load chậm hơn so với mình sử dụng image.fromfile vậy ? Bạn hướng dẫn giúp với

    ReplyDelete
    Replies
    1. Vâng, vì chính quá trình chuyển đổi qua lại giữa byte và image nên bị chậm ạ. Ảnh dung lượng càng lớn càng chậm

      Delete
    2. This comment has been removed by the author.

      Delete
  3. Bạn ơi cho mình hỏi khi ảnh lưu thành công vào database ròi thì làm sao mình lấy ảnh đó từ database gửi qua socket và hiển thị lên form bên kia? Giúp mình chỗ này với

    ReplyDelete
  4. tôi đang làm một ứng dụng đang gặp vấp đề là: tôi tạo barcode PDF417, tôi tạo hàm save barcode thành hình ảnh lưu trong một folder, bây giờ tôi muốn làm lấy barcode đó lưu vào database mà không dc. có thể giúp tôi không? tôi sử dụng barcodecontrol của spride

    ReplyDelete
  5. ad ơi nếu có 1 dòng nào đó của trường ảnh mà null thì sẽ báo lỗi. không load được dữ liệu. làm thế nào để load được dữ liệu nếu dòng nào null thì không hiển thị ảnh, còn nếu có ảnh thì hiển thị bình thường

    ReplyDelete
  6. Anonymous3/13/2022

    Code Up Ảnh Lên Csdl (Sử Dụng Kiểu Image Trong Sql Server) >>>>> Download Now

    >>>>> Download Full

    Code Up Ảnh Lên Csdl (Sử Dụng Kiểu Image Trong Sql Server) >>>>> Download LINK

    >>>>> Download Now

    Code Up Ảnh Lên Csdl (Sử Dụng Kiểu Image Trong Sql Server) >>>>> Download Full

    >>>>> Download LINK

    ReplyDelete

Nhận ngay 100$ cho VPS

Mua hàng ủng hộ page

Ủng hộ page

Nhãn

Code (45) Team Foundation Server (17) Database (14) News (14) product (13) toolbox (10) Linq (9) SoftDesign (8) XNA (6) API (5) Project (5) item (4)

- Bản quyền thuộc về Thư Viện WinForm - Giao diện: Metrominimalist - Thiết kế: Johanes Djogan -