Lưu trữ hình ảnh vào cơ sở dữ liệu với C# - Pdf 32

Lữu trữ hình ảnh vào cơ sở dữ liệu với C#
Thứ bảy, 28 Tháng 8 2010 12:23 Thủ thuật Công nghệ
“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.l
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ưu trữ 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ạo hai ứ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ột bả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 ứng dụ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 book
Author Textbox author
Image Textbox file
Browse button browse
Insert button insert
Nút 'brower' dùng để chọn hình trang bìa, nút ‘Insert’ dùng để đưa các thông
tin về sách và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 Form1 bạ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

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ợp này là các file ảnh jpg. Sau đó gọi hàm ShowDialog()
để hiển thị hộp thoại và kiểm tra xem 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ính FileName 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ều nà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ên file chứa trong các file.Text và kiểu là FileMode.Open. Tiếp
theo,chúng ta tạo 1 mảng buff 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àm Read() để đọ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,

InitializeComponent() như bên dưới:
---------------------------------------
constr = “server database=books;uid=sa;pwd = ”;
con = new SqlConnection ( constr );
cmdstr = “Select * from bookinfo”; com = new SqlCommand ( cmdstr, con );
----------------------------------------
Bạn cũng nên bổ sung đoạn mã sau để mở cơ sở dữ liệu và hiển thị thông tin
về quyển sách đầu tiên:
----------------------------------------
con.Open( );
r = com.ExecuteReader( );


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status