Lưu trữ hình ảnh vào cơ sở dữ liệu với C#
Số trang: 5
Loại file: doc
Dung lượng: 57.50 KB
Lượt xem: 7
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Trong bài này chúng ta sẽ khảo sát cách thức lưu trữ hình ảnh trong cơ sở dữ liệu vàhiển thị chúng dùng ADO. NET. Chúng ta sẽ tạo hai ứng dụng. Một ứng dụng để lưutrữ các thông tin về sách như tên tác giả, tên sách, hình minh họa trang bìa vào cơ sởdữ liệu.
Nội dung trích xuất từ tài liệu:
Lưu trữ hình ảnh vào cơ sở dữ liệu với C# Lữu trữ hình ảnh vào cơ sở dữ liệu với C#“Làm thế nào chúng ta có thể lưu trữ hình ảnh vào cơ sở dữ liệu và truy cập chúng trởlại?”, đây là câu hỏi thường gặp trong lập trình cơ sở dữ liệu.Trong bài này chúng ta sẽ khảo sát cách thức lưu trữ hình ảnh trong cơ sở dữ liệu vàhiển thị chúng dùng ADO. NET. Chúng ta sẽ tạo hai ứng dụng. Một ứng dụng để lưutrữ các thông tin về sách như tên tác giả, tên sách, hình minh họa trang bìa vào cơ sởdữ liệu.Ứng dụng còn lại sẽ truy xuất cơ sở dữ liệu và hiển thị những thông tin đó. Để tạohai ứng dụng này chúng ta cần tạo một cơ sở dữ liệu có tên ‘book’, trong đó có mộtbảng là ‘bookinfo’ với các trường dữ liệu sau: bookname(char), author(char),logo(image).Ở đây logo đại diện cho hình bìa của sách.Ứng dụng đầu tiên Với ứngdụng đầu tiên, chúng ta tạo ứng dụng WinForm và thiết kế chúng như hình sau:Sử dụng các control với tên như bảng sau:Book Name Textbox bookAuthor Textbox authorImage Textbox fileBrowse button browseInsert button insertNút brower dùng để chọn hình trang bìa, nút ‘Insert’ dùng để đưa các thông tin về sáchvào cơ sở dữ liệu.Trước khi có thể nhập thông tin vào cơ sở dữ liệu, chúng ta cần khởi tạo 1 kết nốiđến cơ sở dữ liệu ‘book’ của chúng ta. Để làm được điều này, bên trong lớp Form1bạn cần bổ sung các biến sau:-------------------------------------String constr; //chuỗi xác định kết nối với cơ sở dữ liệu ‘book’SqlConnection con; //đối tượng kết nối-------------------------------------Bạn cần bổ sung thêm khai báo namespace System.Data.SqlClient ở đầu chương trìnhđể kích hoạt lớp SqlConnection.Bên trong constructor của lớp Form1, bạn cần khởitạo kết nối và mở cơ sở dữ liệu ‘book’:------------------------------------//tạo chuỗi kết nốiconstr= “serverdatabase=books;uid=sa;pwd=”;//tạo đối tượng kết nốicon=new SqlConnection(constr);//mở kết nốicon.Open();-----------------------------------Trong đó:- server: tên server.- database: tên cơ sở dữ liệu.- uid,pwd: lần lượt là username và password truy cập server.Sau khi đã mở được kết nối đến server cơ sở dữ liệu, người dùng có thể nhập vào cácthông tin tên sách, tên tác giả, và lựa chọn hình ảnh cho trang bìa. Để có thể lựa chọnđược hình trang bìa ta cần phải xử lí sự kiện xảy ra trên nút ‘Browse’ khi nhấn vào nó.Dưới đây là hàm xử lí:------------------------------------Private void browse_Click ( object sender,EventArgs e ){OpenFileDialog ofd = new OpenFileDialog();ofd.Filter=Image files|*.jpg;if ( ofd.ShowDialog( ) == DialogResult.OK )file.Text=ofd.FileName;}------------------------------------Trong đoạn mã trên chúng ta tạo một đối tượng của lớp OpenFileDialog có tên là ofd.Dùng thuộc tính Filter để lọc lấy những loại file mà ta quan tâm đến trong trường hợpnày là các file ảnh jpg. Sau đó gọi hàm ShowDialog() để hiển thị hộp tho ại và kiểm traxem người dùng có chọn ảnh không. Nếu có, chúng ta gán giá trị của thuộc tínhFileName của ofd cho thuộc tính Text của file text box.Sau khi đã nhập vào đầy đủ,người dùng nhấn nút ‘Insert’ để lưu thông tin vào cơ sở dữ liệu. Để thực hiện điềunày chúng ta cần xử lý hàm insert_Click,hàm quản lý sự kiện click lên nút Insert:------------------------------------Private void insert_Click ( object sender,EventArgs e ){FileStream f = new FileStream(file.Text,FileMode.Open ) ;byte[ ] buff = new byte [ f.Length ] ;f.Read ( buff, 0, ( int ) f.Length ) ;string cmdstr = “Insert into bookinfo values ( @b,@a, @l )” ;SqlCommand com = new SqlCommand ( cmdstr,con ) ;com.Parameters.Add ( “@b”, book.Text ) ;com.Parameters.Add ( “@a”, author.Text ) ;com.Parameters.Add ( “@l”, buff ) ;com.ExecuteNonQuery( ) ;con.Close( ) ;}-----------------------------------Đầu tiên, chúng ta tạo 1 đối tượng thuộc lớp FileStream với các đối số khởi tạo là tênfile chứa trong các file.Text và kiểu là FileMode.Open. Tiếp theo,chúng ta tạo 1 mảngbuff kiểu byte có chiều dài bằng với chiều dài của đối tượng f. Kế tiếp dùng hàmRead() để đọc nội dung của f vào mảng buff.Tiếp theo tạo chuỗi truy vấn cmdstr đểthêm thông tin vào cơ sở dữ liệu. Trong câu truy vấn trên, ta đã sử dụng các tham sốhình thức @b, @a, @l chúng lần lươt đại diện cho các trường dữ liệu book, author,logo trong bảng ‘bookinfo’.Điểm tiện lợi trong việc sử dụng các tham số hình thức đó là khi cần thay đổi giá trịcủa một hay tất cả các trường ta khôngcần phải viết lại toàn bộ câu truy vấn mà chỉcần dựa trên các tham số hình thức tương ứng với file đó mà cập nhật lại dữ liệu.Thuộc tính Parameters của lớp SqlCommand chứa tất cả các tham số được tham chiếuđến trong đối tượng SqlParameterCollection. Chúng ta truyền giá trị cho những tham sốnày bằng cách gọi phương thức Add() của lớp SqlParameterCollection.Kế tiếp, chúng ta gọi phương thức ExecuteNonquery() để thực thi câu truy vấn và gọihàm Close() để đóng kết nối với cơ sở dữ liệu.Trong ứng dụng này, bạn cần bổ sung ...
Nội dung trích xuất từ tài liệu:
Lưu trữ hình ảnh vào cơ sở dữ liệu với C# Lữu trữ hình ảnh vào cơ sở dữ liệu với C#“Làm thế nào chúng ta có thể lưu trữ hình ảnh vào cơ sở dữ liệu và truy cập chúng trởlại?”, đây là câu hỏi thường gặp trong lập trình cơ sở dữ liệu.Trong bài này chúng ta sẽ khảo sát cách thức lưu trữ hình ảnh trong cơ sở dữ liệu vàhiển thị chúng dùng ADO. NET. Chúng ta sẽ tạo hai ứng dụng. Một ứng dụng để lưutrữ các thông tin về sách như tên tác giả, tên sách, hình minh họa trang bìa vào cơ sởdữ liệu.Ứng dụng còn lại sẽ truy xuất cơ sở dữ liệu và hiển thị những thông tin đó. Để tạohai ứng dụng này chúng ta cần tạo một cơ sở dữ liệu có tên ‘book’, trong đó có mộtbảng là ‘bookinfo’ với các trường dữ liệu sau: bookname(char), author(char),logo(image).Ở đây logo đại diện cho hình bìa của sách.Ứng dụng đầu tiên Với ứngdụng đầu tiên, chúng ta tạo ứng dụng WinForm và thiết kế chúng như hình sau:Sử dụng các control với tên như bảng sau:Book Name Textbox bookAuthor Textbox authorImage Textbox fileBrowse button browseInsert button insertNút brower dùng để chọn hình trang bìa, nút ‘Insert’ dùng để đưa các thông tin về sáchvào cơ sở dữ liệu.Trước khi có thể nhập thông tin vào cơ sở dữ liệu, chúng ta cần khởi tạo 1 kết nốiđến cơ sở dữ liệu ‘book’ của chúng ta. Để làm được điều này, bên trong lớp Form1bạn cần bổ sung các biến sau:-------------------------------------String constr; //chuỗi xác định kết nối với cơ sở dữ liệu ‘book’SqlConnection con; //đối tượng kết nối-------------------------------------Bạn cần bổ sung thêm khai báo namespace System.Data.SqlClient ở đầu chương trìnhđể kích hoạt lớp SqlConnection.Bên trong constructor của lớp Form1, bạn cần khởitạo kết nối và mở cơ sở dữ liệu ‘book’:------------------------------------//tạo chuỗi kết nốiconstr= “serverdatabase=books;uid=sa;pwd=”;//tạo đối tượng kết nốicon=new SqlConnection(constr);//mở kết nốicon.Open();-----------------------------------Trong đó:- server: tên server.- database: tên cơ sở dữ liệu.- uid,pwd: lần lượt là username và password truy cập server.Sau khi đã mở được kết nối đến server cơ sở dữ liệu, người dùng có thể nhập vào cácthông tin tên sách, tên tác giả, và lựa chọn hình ảnh cho trang bìa. Để có thể lựa chọnđược hình trang bìa ta cần phải xử lí sự kiện xảy ra trên nút ‘Browse’ khi nhấn vào nó.Dưới đây là hàm xử lí:------------------------------------Private void browse_Click ( object sender,EventArgs e ){OpenFileDialog ofd = new OpenFileDialog();ofd.Filter=Image files|*.jpg;if ( ofd.ShowDialog( ) == DialogResult.OK )file.Text=ofd.FileName;}------------------------------------Trong đoạn mã trên chúng ta tạo một đối tượng của lớp OpenFileDialog có tên là ofd.Dùng thuộc tính Filter để lọc lấy những loại file mà ta quan tâm đến trong trường hợpnày là các file ảnh jpg. Sau đó gọi hàm ShowDialog() để hiển thị hộp tho ại và kiểm traxem người dùng có chọn ảnh không. Nếu có, chúng ta gán giá trị của thuộc tínhFileName của ofd cho thuộc tính Text của file text box.Sau khi đã nhập vào đầy đủ,người dùng nhấn nút ‘Insert’ để lưu thông tin vào cơ sở dữ liệu. Để thực hiện điềunày chúng ta cần xử lý hàm insert_Click,hàm quản lý sự kiện click lên nút Insert:------------------------------------Private void insert_Click ( object sender,EventArgs e ){FileStream f = new FileStream(file.Text,FileMode.Open ) ;byte[ ] buff = new byte [ f.Length ] ;f.Read ( buff, 0, ( int ) f.Length ) ;string cmdstr = “Insert into bookinfo values ( @b,@a, @l )” ;SqlCommand com = new SqlCommand ( cmdstr,con ) ;com.Parameters.Add ( “@b”, book.Text ) ;com.Parameters.Add ( “@a”, author.Text ) ;com.Parameters.Add ( “@l”, buff ) ;com.ExecuteNonQuery( ) ;con.Close( ) ;}-----------------------------------Đầu tiên, chúng ta tạo 1 đối tượng thuộc lớp FileStream với các đối số khởi tạo là tênfile chứa trong các file.Text và kiểu là FileMode.Open. Tiếp theo,chúng ta tạo 1 mảngbuff kiểu byte có chiều dài bằng với chiều dài của đối tượng f. Kế tiếp dùng hàmRead() để đọc nội dung của f vào mảng buff.Tiếp theo tạo chuỗi truy vấn cmdstr đểthêm thông tin vào cơ sở dữ liệu. Trong câu truy vấn trên, ta đã sử dụng các tham sốhình thức @b, @a, @l chúng lần lươt đại diện cho các trường dữ liệu book, author,logo trong bảng ‘bookinfo’.Điểm tiện lợi trong việc sử dụng các tham số hình thức đó là khi cần thay đổi giá trịcủa một hay tất cả các trường ta khôngcần phải viết lại toàn bộ câu truy vấn mà chỉcần dựa trên các tham số hình thức tương ứng với file đó mà cập nhật lại dữ liệu.Thuộc tính Parameters của lớp SqlCommand chứa tất cả các tham số được tham chiếuđến trong đối tượng SqlParameterCollection. Chúng ta truyền giá trị cho những tham sốnày bằng cách gọi phương thức Add() của lớp SqlParameterCollection.Kế tiếp, chúng ta gọi phương thức ExecuteNonquery() để thực thi câu truy vấn và gọihàm Close() để đóng kết nối với cơ sở dữ liệu.Trong ứng dụng này, bạn cần bổ sung ...
Tìm kiếm theo từ khóa liên quan:
thủ thuật lập trình lập trình căn bản cách thức lưu trữ hình ảnh cơ sở dữ liệu tài liệu lập trìnhGợi ý tài liệu liên quan:
-
62 trang 402 3 0
-
Đề thi kết thúc học phần học kì 2 môn Cơ sở dữ liệu năm 2019-2020 có đáp án - Trường ĐH Đồng Tháp
5 trang 378 6 0 -
Giáo trình Cơ sở dữ liệu: Phần 2 - TS. Nguyễn Hoàng Sơn
158 trang 293 0 0 -
13 trang 292 0 0
-
Phân tích thiết kế hệ thống - Biểu đồ trạng thái
20 trang 287 0 0 -
Tài liệu học tập Tin học văn phòng: Phần 2 - Vũ Thu Uyên
85 trang 256 1 0 -
Đề cương chi tiết học phần Quản trị cơ sở dữ liệu (Database Management Systems - DBMS)
14 trang 245 0 0 -
114 trang 239 2 0
-
80 trang 218 0 0
-
Thủ thuật giúp giải phóng dung lượng ổ cứng
4 trang 214 0 0