Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 6 của 6
  1. #1

    Thắc mắc lưu ảnh vào CSDL SQL Server 2008 R2

    Mọi người cho mình hỏi ? khi mình dùng ASP.net (C#) muốn lưu một bức ảnh vào Sql Server 2008 R2 thì cách lưu đường dẫn của bức ảnh
    vào csdl dạng nvarchar và lưu trực tiếp nội dung bức ảnh đó vào csdl dạng image cách nào tốt hơn ?
    vì mình dùng datalist control để hiển thị ảnh với cách lưu đường dẫn thì mình hiển thị được bức ảnh còn cách lưu trực tiếp bức ảnh đó vào csdl image thì pó tay không biết làm thế nào ? nhờ mọi người giải đáp giúp !

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    mình nghĩ cách 1 tốt hơn. cách 2 làm web nhiều mà chưa dùng bao giờ

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Với C2 nếu như bạn có nhiều Ảnh và dung lượng ảnh lớn thì CSDL sẽ tăng nhanh khủng khiếp đấy!

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Nếu lưu đường dẫn, bạn có cơ chế để cập nhật khi path bị thay đổi : del, move ?

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Lưu ảnh là dạng image ở database và trong C# hay VB.NET là byte array

  6. #6
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Tùy vào phần mềm mà lưu đường dẫn hay lưu ảnh vào Data.
    Nếu lưu ảnh vào Data thì lên tạo 1 Table riêng chỉ lưu khóa và dữ liệu.

    Nếu lưu ảnh vào Data thì đây:

    USE [Hrm]
    GO

    /****** Object: Table [dbo].[HPicPersion] Script Date: 9/5/2015 1:20:44 PM ******/
    SET ANSI_NULLS ON
    GO

    SET QUOTED_IDENTIFIER ON
    GO

    CREATE TABLE [dbo].[HPicPersion](
    [Stt_rec] [nchar](16) NOT NULL,
    [Per_Pic] [image] NOT NULL,
    CONSTRAINT [PK_HPicPersion] PRIMARY KEY CLUSTERED
    (
    [Stt_rec] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

    GO



    ///
    ///
    ///
    private byte[] ImageToStream(string fileName)
    {
    MemoryStream stream = new MemoryStream();
    tryagain:
    try
    {
    Bitmap image = new Bitmap(fileName);
    image.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
    }
    catch (Exception ex)
    {
    goto tryagain;
    }

    return stream.ToArray();
    }

    ///
    /// fileName Đường dẫn lưu của ảnh
    ///
    public int SavePic(string sStt_rec, string fileName)
    {
    string connstr = @"Data Source=.;Initial Catalog=Hrm;

    Persist Security Info=True;User ID=sa";


    SqlConnection sqlCon = new SqlConnection(connstr);

    sqlCon.Open();


    byte[] content = ImageToStream(fileName);


    SqlCommand cmd = new SqlCommand(" insert into HPicPersion (Stt_rec,Per_Pic) values ( @id,@img)", sqlCon);
    cmd.Parameters.AddWithValue("@id", sStt_rec);
    cmd.Parameters.AddWithValue("@img", content);
    cmd.ExecuteNonQuery();
    sqlCon.Close();
    return 0;

    }


    private byte[] ImageToStream(string fileName)
    {
    MemoryStream stream = new MemoryStream();
    tryagain:
    try
    {
    Bitmap image = new Bitmap(fileName);
    image.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
    }
    catch (Exception ex)
    {
    goto tryagain;
    }

    return stream.ToArray();
    }

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •