1. Trang chủ
  2. » Luận Văn - Báo Cáo

LƯU HÌNH ẢNH VÀO DATABASE

15 1,1K 3

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 15
Dung lượng 176,27 KB

Nội dung

LƯU HÌNH ẢNH VÀO DATABASE 1 2 3 4 5 MỤC ĐÍCH TẠO CƠ SỞ DỮ LiỆU GIAO DiỆN FORM CHÍNH TẠO LỚP KẾT NỐI CƠ SỞ DỮ LiỆU LƯU HÌNH ẢNH VÀO DATABASE... Tuy nhiên, lưu trữ hình ảnh vào databas

Trang 1

LƯU HÌNH ẢNH VÀO DATABASE

NGUYỄN HUY THẮNG 09520660

BÙI CHÍ THIỆN 09520662

Trang 2

LƯU HÌNH ẢNH VÀO DATABASE

1

2

3

4

5

MỤC ĐÍCH

TẠO CƠ SỞ DỮ LiỆU

GIAO DiỆN FORM CHÍNH

TẠO LỚP KẾT NỐI CƠ SỞ DỮ LiỆU

LƯU HÌNH ẢNH VÀO DATABASE

Trang 3

Đôi khi bạn cần lưu trữ hình ảnh trong cơ sở dữ liệu thay vì các tập tin vật lý Ứng dụng này trên Windows Form giúp cho người lập trình tạo ra một giao diên thân thiện và dễ sử dụng cho người dùng Tuy nhiên, lưu trữ hình ảnh vào database cũng có một khuyết điểm lớn làm cho tập tin trở nên tốn bộ nhớ

Đối với các tập tin dạng Text(văn bản) như txt,doc,rtf,html…thì bạn có thể đọc toàn

bộ nội dung tập tin vào một chuỗi String và lưu chuỗi đó vào database Kiểu khai báo

dữ liệu trong database có thể là text,varchar, nvarchar tuỳ thuộc vào cơ sở dữ liệu bạn thiết kế.

MỤC ĐÍCH

Trang 4

Đối với tập tin binary (tập tin nhị phân) như com,exe, jpg,bmp,…thì nội dung cần khai báo vào một mảng Byte (khai báo trong chương trình là Byte[]) và lưu mảng này vào Database, kiểu dữ liệu trong database là Binary.

MỤC ĐÍCH

Trang 5

TẠO CƠ SỞ DỮ LiỆU

Database trong SQLServer:

Ta tạo một database hình ảnh với tên là QLHinh trong SQLServer với 2 thuộc tính là IDHinh (thuộc tính khoá chính)và Picture như sau:

Trang 6

Giao diện gồm: picturebox, datagridwiew, textbox (Ma Hinh), button (Mo Hinh, Lưu vào Database, Đóng Ứng Dụng)

GIAO DiỆN FORM CHÍNH:

Trang 7

Trước hết, ta tạo một lớp có tên là ketnoi.cs Lớp này dùng để đọc dữ liệu từ database cũng như cập nhật dữ liệu xuống Database

Ta khai báo các đối tượng: sqlConnection, Dataset, sqlAdapter

SqlConnection: dùng để chỉ rõ là chúng ta kết nối đến đâu Để chỉ định các thông tin như Server Name, Database Name, Authentication thì ta cần phải truyền vào cho constructor của lớp SqlConnection một chuỗi kết nối (Connection String).Nói một cách tổng quát, chuỗi kết nối là cách chúng ta truyền vào thông tin cách thức kết nối đến nguồn dữ liệu Ví dụ, xét chuỗi kết nối sau: “Data Source=.\sqlexpress;Initial

Catalog=AdventureWorksLT2008;Integrated Security=True”

TẠO LỚP KẾT NỐI VỚI CƠ SỞ DỮ LiỆU

Trang 8

DataSet: đây là đối tượng mà sẽ chứa toàn bộ dữ liệu chúng ta truy xuất được từ database Ứng dụng của chúng ta sẽ thao tác trên dữ liệu trong DataSet này Sử dụng DataSet cho phép chúng ta chỉ truy xuất dữ liệu từ database 1 lần duy nhất và kết nối đến Database sẽ được ngắt đi ngay sau khi truy xuất

SqlDataAdapter: đối tượng của lớp này hoạt động như là một cầu nối để đưa

dữ liệu từ database đổ vào DataSet Đối tượng lớp này chịu trách nhiệm tự

động quản lý đóng mở kết nối đến database

TẠO LỚP KẾT NỐI VỚI CƠ SỞ DỮ LiỆU

Trang 9

Mô hình quan hệ giữa DataSet, SqlDataAdapter, SQL

TẠO LỚP KẾT NỐI VỚI CƠ SỞ DỮ LiỆU

Trang 10

 Để lấy tất cả mẫu tin trong Database ta khai báo.

public DataSet daQLH()

{

ds = new DataSet();

daHinh = new SqlDataAdapter("select* from Hinh",con); //tao va lap day DataSet

daHinh.Fill(ds,"Hinh");

return ds;

}

TẠO LỚP KẾT NỐI VỚI CƠ SỞ DỮ LiỆU

Trang 11

Method Fill(), method này là một đặc trưng của ADO.NET được cung cấp để truyền dữ liệu các DataSet và nó TỰ ĐỘNG mở kết nối khi gọi nó nếu như kết nối không được mở Và sau khi Fill vào DataSet thì lại tự động đóng kết nối Mọi việc ở đây nằm trong quyền kiểm soát của cái Adapter.

 Khi lưu hình ảnh xong ta cần cập nhật sự thay đổi trong CSDL.

TẠO LỚP KẾT NỐI VỚI CƠ SỞ DỮ LiỆU

Trang 12

public void CapNhatHinh ()

{

try

{

SqlCommandBuilder cmdb = new SqlCommandBuilder(daHinh); daHinh.Update(ds, "Hinh");

//return bd;

}

catch(Exception e)

{

//bat loi

Console.WriteLine(e.Message);

}

}

LỚP KẾT NỐI

Trang 13

 Để đọc dữ liệu hình ảnh ra ta dùng 1 mảng Byte để chứa giá trị của field Picture Sau đó muốn hiển thị nó lên PictureBox ta phải dùng

MemoryStream để đưa ra:

try

{

Byte[] i = (byte[])row["Picture"];

Image.FromStream(MstmData);

}

LƯU HÌNH ẢNH VÀO DATABASE

Trang 14

 Để cập nhật dữ liệu vào database, ta phải lấy ảnh từ PictureBox vào 1

MemoryStream:

{

MemoryStream ms = new MemoryStream();

pictureBox1.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); }

LƯU HÌNH ẢNH VÀO DATABASE

Trang 15

 Để cập nhật dữ liệu vào database, ta phải lấy ảnh từ PictureBox vào 1

MemoryStream:

{

MemoryStream ms = new MemoryStream();

pictureBox1.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); }

LƯU HÌNH ẢNH VÀO DATABASE

Ngày đăng: 05/04/2015, 23:38

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w