You are on page 1of 43

Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

MỤC LỤC
Trang
LỜI NÓI ĐẦU 3
PHẦN I GIỚI THIỆU NGỒN NGỮ 4
CHƯƠNG I INTERNET VÀ CÔNG NGHỆ ASP.NET 4
I.GIỚI THIỆU VỀ INTERNET INFORMATION SERVER 4
Giới thiệu về Internet Information Server (IIS) 4
II.GIỚI THIỆU VỀ NGÔN NGỮ ASP.NET 5
1.Mở đầu về ASP.NET 5
2.Những điểm khác biệt của ASP và ASP.NET 7
CHƯƠNG II NGÔN NGỮ LẬP TRÌNH C# 11
I. TỔNG QUAN VỀ NGÔN NGỮ LẬP TRÌNH C# 11
II.TẠI SAO PHẢI SỬ DỤNG NGÔN NGỮ C# 12
CHƯƠNG III NGÔN NGỮ SQL VÀ CƠ SỞ DỮ LIỆU SQL SERVER
I.CÁC ĐỐI TƯỢNG TRONG HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL
SERVER 14
1.Bảng (Table) : 14
2.Khung nhìn dữ liệu (View) : 14
3.Chỉ số của bảng (Index) : 14
4.Thủ tục lưu trữ (Store procedure) : 14
5.Trigger : 14
II.NGÔN NGỮ CƠ SỞ DỮ LIỆU SQL : 15
1.Định nghĩa 15
2.Cách sử dụng ngôn ngữ SQL 15
III.TÍNH TOÀN VẸN VÀ BẢO MẬT : 15
PHẦN II PHÂN TÍCH THIẾT KÊ WEBSITE ALBUM
CHƯƠNG I KHẢO SÁT HỆ THỐNG 17
I.NÊU BÀI TOÁN 17
II. CÁC VẤN ĐỀ CHÍNH VÀ PHẠM VI GIẢI QUYẾT CỦA BÀI
TOÁN 17
CHƯƠNG II PHÂN TÍCH HỆ THỐNG VỀ CHỨC NĂNG
I. SƠ ĐỒ CHỨC NĂNG CỦA HỆ THỐNG 19

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

1
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

II. SƠ ĐỒ DÒNG DỮ LIỆU 19


1. Các tác nhân ngoài 19
2. Các kho dữ liệu 19
3. Sơ đồ dòng dữ liệu 19
4. Các thực thể trong cơ sở dữ liệu 22
5. Quan hệ các bảng trong cơ sở dữ liệu 22
CHƯƠNG III THIẾT KẾ HỆ THỐNG
I.CÁC TIẾN TRÌNH QUAN TRỌNG 23
1. Tiến trình đăng ký tài khoản người sử dụng 23
2. Tiến trình sửa đổi tài khoản người sử dụng 23
3.Tiến trình cập nhật ảnh 24
4.Tiến trình tìm kiếm ảnh 26
II.MÔ TẢ CHI TIẾT CÁC LỚP ĐỐI TƯỢNG CHÍNH VÀ QUAN
HỆ TRONG CƠ SỞ DỮ LIỆU 27
III.CÁC GIAO DIỆN MÀN HÌNH 29
IV.MỘT SỐ MÃ NGUỒN CỦA CÁC MODUL QUAN TRỌNG
TRONG HỆ THỐNG 32
1. Một số hàm hệ thống 32
2. Modul đăng ký tài khoản người sử dụng 35
3. Modul tạo Album 37
4. Modul nhập ảnh 40
V. KẾT LUẬN 43

LỜI NÓI ĐẦU


Khi đời sống của đa số mọi người đều trở nên khá giả, họ lại muốn
đi du lịch khắc nơi để mở rộng tầm hiểu biết về văn hóa của các dân tộc,
các quốc gia trên thế giới. Họ chụp lại những nơi họ đã đi qua và lưu
những kỷ niệm đẹp trong những chuyến đi đó vào trong những bức ảnh.
Nhưng những bức ảnh bằng giấy có thể hỏng theo thời gian.

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

2
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

Với công nghệ thông tin đang phát triển, giúp cho con người có thể
chuyển tải thông tin với khoảng cách rất xa trong thới gian ngắn, đặc biệt
là có thể lưu trữ thông tin trên mạng.
Xuất phát từ ý tưởng xây dựng một website để lưu lại những bức
ảnh đẹp và những gợi ý của thầy Nguyễn Đức Tuấn em đã lựa chọn bài
tập với đề tài “Xây dựng Website Album ”.
Với Website Album, người dùng có thể truy cập, đăng ký tài khoản
và sử dụng website để lưu những tấm ảnh mà mình thích nhất. Ngoài ra,
người dùng có thể lưu ảnh theo thời gian hay sự kiện đáng nhớ (Album),
một Album có thể có nhiều Album khác, có thể viết lời tựa cho bức ảnh
hoặc Album.
Người dùng có thế thay đổi tựa đề của Album hoặc của bức ảnh nếu
thấy không phù hợp và có thể xóa bỏ khi không cần thiết.
Trong quá trình làm bài, em xin chân thành cảm ơn thầy Nguyễn
Đức Tuấn người đã hết lòng giúp đỡ em trong suốt quá trình thực hiện và
hoàn thành bài tập tốt nghiệp này.
Xin chân thành cảm ơn tất cả các ý kiến đóng góp và sự giúp đỡ của
bạn bè đối với bài tập tốt nghiệp này

PHẦN I
GIỚI THIỆU NGỒN NGỮ
CHƯƠNG I
INTERNET VÀ CÔNG NGHỆ ASP.NET
I_ GIỚI THIỆU VỀ INTERNET INFORMATION SERVER(IIS ):

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

3
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

IIS - Viết tắt của Microsoft Internet Information Services (các dịch vụ cung
cấp thông tin Internet) là các dịch vụ dành cho máy chủ chạy trên nền Hệ điều
hành Window nhằm cung cấp và phân tán các thông tin lên mạng, nó bao gồm
nhiều dịch vụ khác nhau như Web Server, FTP Server,... Nó có thể được sử
dụng để xuất bản nội dung của các trang Web lên Internet/Intranet bằng việc sử
dụng “Phương thức chuyển giao siêu văn bản“ - Hypertext Transport Protocol
(HTTP). Như vậy, sau khi bạn thiết kế xong các trang Web của mình, nếu bạn
muốn đưa chúng lên mạng để mọi người có thể truy cập và xem chúng thì bạn
phải nhờ đến một Web Server, ở đây là IIS. Nếu không thì trang Web của bạn
chỉ có thể được xem trên chính máy của bạn hoặc thông qua việc chia sẻ tệp
(file sharing) như các tệp bất kỳ trong mạng nội bộ mà thôi.
Nhiệm vụ của IIS là tiếp nhận yêu cầu của máy trạm và đáp ứng lại yêu cầu
đó bằng cách gửi về máy trạm những thông tin mà máy trạm yêu cầu. Có thể sử
dụng IIS để:
• Xuất bản một Website của bạn trên Internet
• Tạo các giao dịch thương mại điện tử trên Internet (hiện các catalog và
nhận được các đơn đặt hàng từ nguời tiêu dùng)
• Chia sẻ file dữ liệu thông qua giao thức FTP.
• Cho phép người ở xa có thể truy xuất database của bạn (gọi là Database
remote access). Và rất nhiều khả năng khác ...
IIS sử dụng các giao thức mạng phổ biến là HTTP (Hyper Text Transfer
Protocol) và FPT (File Transfer Protocol) và một số giao thức khác như SMTP,
POP3,... để tiếp nhận yêu cầu và truyền tải thông tin trên mạng với các định
dạng khác nhau. Một trong những dịch vụ phổ biến nhất của IIS mà chúng ta
quan tâm trong giáo trình này là dịch vụ WWW (World Wide Web), nói tắt là
dịch vụ Web. Dịch vụ Web sử dụng giao thức HTTP để tiếp nhận yêu cầu

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

4
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

(Requests) của trình duyệt Web (Web Browser) dưới dạng một địa chỉ URL
(Uniform Resource Locator) của một trang Web và IIS phản hồi lại các yêu cầu
bằng cách gửi về cho Web Browser nội dung của trang Web tương ứng.
II.GIỚI THIỆU VỀ NGÔN NGỮ ASP.NET
1.Mở đầu về ASP.NET
ASP.NET có rất nhiều tính năng mới cho nhà phát triển ứng dụng Web
kể cả mã phía server được biên dịch, một kỹ thuật được gọi là code bihind để
tách biệt logic phía server với layout (bố cục) phía client, một mô hình điều
khiển phía server mở rộng, một mô hình liên kết dữ liệu tốt và dễ sử dụng, sự
triển khai và và sự hỗ trợ xcopy cho sự hiệu lực hóa form trên các client và
server. Hơn thế nữa, ASP.NET mang đến cho chúng ta sự hợp nhất : sự hợp
nhất giữa các ngôn ngữ, công cụ, thư viện, mô hình triển khai, thiết kế và chuẩn
đoán hệ thống. Các nhà phát triển ứng dụng Web không còn cần phân biệt giữa
các thành phần (component) được sử dụng bởi các trang của họ và các thành
phần được sử dụng ở nơi khac trong cấu trúc của họ. Họ không còn phải làm
việc với một trình gỡ rối script để chuẩn đoán các sự cố trong các trang của họ.
Họ không gặp phải những điều phức tạp thường khó hiểu của những ngôn ngữ
tạo script không được định kiểu và bây giờ có thể sử dụng bất kỳ ngôn ngữ
.NET nào mà họ thích trong việc tạo các trang của mình.Việc tạo các ứng dụng
Web bây giờ cũng giống như bất kỳ sự phát triển phầm mềm khác trên nền
.NET
Về cốt lõi, ASP.NET là một tập hợp các lớp .NET làm việc cùng với
nhau để phục vụ yêu cầu của HTTP. Một số lớp (class) này được định nghĩa
trong các Assembly hệ thống như một phần của các thư viện lớp cơ sở vốn
được cài đặt với runtime.NET, một số lớp này có thể được đặt trong các
assembly được triển khai trong GAC (Global Assembly Cache) và một số lớp

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

5
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

này được tải từ assembly cục bộ vốn ở trong thư mục ảo được liên kết với ứng
dụng này. Tất cả những lớp này được tải vào một miền (domain) ứng dụng
trong tiến trình làm việc ASP.NET và tương tác để tạo một thông báo phản hồi
cho một yêu cầu đã cho.
Mặc dù ASP.NET về mặt kỹ thuật không được gọi là ASP 4.0 nhưng
theo nhiều cách thì nó là như thế - phiên bản kế tiếp của ASP. Trong ASP.NET,
chúng ta không còn bị giới hạn chỉ trong hai ngôn ngữ tao script có sẵn trong
ASP truyền thống:VBScript và Jscript. Bất kỳ một ngôn ngữ .NET hoàn toàn
tương thích bây giờ có thể được sử dụng với ASP.NET, kể cả C# và VB.NET.
Minh họa một trang .aspx mẫu:
<!-- File : test.aspx-->
<%@ Page Language = ‘C#’ %>
<script runat = ‘server’>
int Add(int x, int y)
{
return x+y ;
}
</script>

<html><body>
<h1> Test ASP.NET Page </h1>
<h2> 2+2 = <%=Add(2,2)%></h2>
<table border = 2>
<%
For (int i=0; i<10; i++){
%>

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

6
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

<tr><td>Row<%=i%>Col0</td> <td>Row<% = i %>Col1</td></tr>


<%
}
%>
</table>
<%
Response.Write(“<h2>Writen directly to Response </h2>”);
%>
</body></html>

2.Những điểm khác biệt của ASP và ASP.NET


Hiện tại thì ASP chỉ là ngôn ngữ kịch bản phi định kiểu dựa trên
VBScript, Jscript. ASP không tận dụng được các ngôn ngữ ràng buộc kiểu
mạnh như C++ , Visual Basic .Còn ASP.NET cho phép sử dụng ngôn ngữ trung
lập. Trang ASP.NET có thể viết bằng nhiêu ngôn ngữ như VBScript, Jscript,
Visual Basic, C++, C#.
Các trang ASP mã lệnh và giao diện trộn lẫn với nhau. Khi phát triển các
ứng dụng web lớn cần tách ra hai nhóm .Một nhóm thiết kế giao diện (Web
Designer) và một nhóm lập trình (programmer).Các trang ASP khó bảo trì khi
muốn thêm vào các mã lập trình mới hay thay đổi lại giao diện . ASP.NET cho
phép tách rời giữa mã lập trình và nội dung tài liệu.
Trong các phiên bản ASP hầu như phải viết mã chương trình để quản lý
mọi chuyện.Muốn quản lý trạng thái của các trường nhập dữ liệu trong form,
kiểm tra tính hợp lệ của dữ liệu do người dùng nhập vào, hay để tăng tốc cho
các trang ASP bằng các dùng vùng đệm thì đều phải viết mã.Còn ASP.NET
thực sự là mô hình đối tượng thành phần loại bỏ nhiều công đoạn viết mã mà

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

7
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

lập trình viên phải làm. ASP.NET cung cấp các thành phần điều khiển hoạt
động phía trình chủ (server side control) hoạt động theo hướng xử lý sự kiện.
Mọi việc kiểm soát trạng thái và tương tác với các thành phần điều khiển đểu
được trình chủ Web Server với kiến trúc ASP.NET lo liệu.
Visual Studio .Net của Microsoft là một công cụ tuyệt vời xây dựng các
ứng dụng Web đặc biệt là ASP.NET.Môi trường lập trình mới của Windows
không phân biệt ngôn ngữ. ASP.NET có thể viết bằng bất kì ngôn ngữ nào có
trong Visual Studio.
Những điểm mới của ASP.NET
Page (trang ứng dụng) : sử dụng các thành phần điều khiển có khả năng
hoạt động và tương tác với nhau ngay trên trình chủ Web Server.Đặc điểm này
làm giảm thiểu quá trình viết mã. Lập trình trong môi trường ASP.NET giống
như lập trình thiết kế Form trong VB do đó các ứng dụng trong ASP.NET gọi là
Web Forms.
HTML Server Side Controls : Các thành phần điều khiển HTML có khả
năng xử lý ngay trên trình chủ dựa vào thuộc tính và phương thức tương tự cách
hoạt động của chúng phía trình khách .Những thành phần điều khiển này cho
phép kết hợp mã xử lý trang ASP.NET với một sự kiện nào đó phát sinh phía
trình khách được xem như đang diễn ra trên trình chủ.
Web Service :Trang ASP.NET của bạn có thể không cần hiển thị kiết
xuất cho trình khách .Chúng hoạt động như những chương trình xử lý hậu cảnh.
Tự đông quản lý trạng thái của đối tượng Session và Application: Cho
phép lưu nội dung của Session hay Application của một ứng dụng đặc thù nào
đó xuống các file trên đĩa để sử dụng lại.
Xử lý lỗi , debug và lần vết (tracing): Các công cụ gỡ lỗi, lần vết thông
tin được nâng cấp đáng tin cậy hơn.Mỗi trang tài liệu có thể sử dụng một trang

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

8
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

xử lý lỗi riêng biệt và kiết xuất nội dung của biến để theo dõi ngay trong quá
trình thực thi trang.
Tùy biến vùng đệm trên trình chủ (Custom Server Caching):Vùng đệm
của ASP.NET được quản lý rất linh động.
Một tập các đối tượng phong phú: ASP.NET hỗ trợ các thư viện lớp và
các đối tượng phục vụ cho hầu hết những gì mà các nhà phát triển cẩn dụng
đến. Vì vậy làm đơn giản hóa công việc viết ứng dụng cho Web.
Các đối tượng nội tại như Request, Response, Form, Cookies, Server
Variables đểu được giữ lại và hoàn toàn tương thích với ASP. Tuy nhiên
ASP.NET cung cấp cho các đối tượng này nhiều thuộc tính và phương thức mới
giúp nâng cao khả năng xử lý lỗi của chúng.
Các thành phần điều khiển trong ASP.NET
Điều khiển nội tại (intrinsic control)
Các điều khiển này tạo ra những phần tử kiểu HTML phía trình khách.
Các phần tử HTML được coi là điểu khiển nội tại : <table> <tr> <th> <td>
<form> <input> <select> <textarea> <button> <a> <img>
Điều khiển danh sách(list control)
Thành phần điều khiển này cho phép hiển thị mọi loại dữ liệu kiểu danh
sách như các bảng dữ liệu (table), khung nhìn(view), liệt kê…Điều khiển danh
sách chuẩn gồm các thành phần sau: Repeater, Datalist và DataGrid.
Điều khiển Repeater là thành phần đơn giản cho phép kết xuất những nội
dung lặp lại với cùng một định dạng, font chữ, màu sắc…
DataList giống như Repeater nhưng cho phép thêm vào các phần tử điều
khiển HTML khác để biểu diễn cho dữ liệu lặp lại.
DataGrid là khung lưới hay bảng dùng để trình bày dữ liệu theo định
dạng hàng và cột, có thể dùng DataGrid để định dạng các dòng hoặc cột dữ liệu

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

9
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

giống như bảng tính của Excel và kiết xuất cuối cùng hoàn toàn là mã HTML
tương thích với hầu hết các trình duyệt
Ngoài ra còn có 2 điều khiển danh sách khác là RadioButtonList và
CheckBoxList để tạo các nút chọn.
Điểu khiển kiểm tra(validate control)
ASP.NET cung cấp các điều khiển kiểm tra gọi là Validation Control có
thể dùng để sinh mã kiểm tra ở cả hai phía Client và Server .
Có 3 điều khiển :
RequeredFieldValidator: dùng kiểm tra giá trị bắt buộc của trường
ComparedValidator : Kiểm tra giá trị thông qua so sánh với giá trị khác.
RegularExpressionValidator : Kiểm tra tính hợp lệ của dữ liệu.
Ngoài ra còn có các điều khiển CustomValidator để cài đặt bộ kiểm tra
dữ liệu cho riêng mình bằng các hàm JavaScript hoăc Visual Basic…,
ValidationSummary sẽ kiểm tra tất cả các thành phần điều khiển của Validator
và in kết quả nếu một điều khiển nào không thỏa mãn điều kiện kiểm tra.
Mỗi điều khiển Validator được liên kết với một thành phần HTML thông
qua thuộc tính của phần tử.
CHƯƠNG II
NGÔN NGỮ LẬP TRÌNH C#
I. TỔNG QUAN VỀ NGÔN NGỮ LẬP TRÌNH C#
Ngôn ngữ C# khá đơn giản, chỉ khoảng 80 từ khóa và hơn mười mấy kiểu
dữ liệu được xây dựng sẵn. Tuy nhiên, ngôn ngữ C# có ý nghĩa cao khi nó thực
thi những khái niệm lập trình hiện đại. C# bao gồm tất cả những hỗ trợ cho cấu
trúc, thành phần component, lập trìnhhướng đối tượng. Những tính chất đó hiện
diện trong một ngôn ngữ lập trình hiện đại. Và ngôn ngữ C# hội đủ những điều

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

10
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

kiện như vậy, hơn nữa nó được xây dựng trên nền tảng của hai ngôn ngữ mạnh
nhất là C++ và Java.
Ngôn ngữ C# được phát triển bởi đội ngũ kỹ sư của Microsoft, trong đó
người dẫn đầu là Anders Hejlsberg và Scott Wiltamuth. Cả hai người này điều
là những người nổi tiếng, trong đó Anders Hejlsberg được biết đến là tác giả
của Turbo Pascal, một ngôn ngữ lập trình PC phổ biến. Và ông đứng đầu nhóm
thiết kế Borland Delphi, một trong những thành công đầu tiên của việc xây
dựng môi trường phát triển tích hợp (IDE) cho lập trình client/server.
Trong ngôn ngữ C# mọi thứ liên quan đến khai báo lớp điều được tìm thấy
trong phần khai báo của nó. Định nghĩa một lớp trong ngôn ngữ C# không đoi
hỏi phải chia ra tập tin header và tập tin nguồn giống như trong ngôn ngữ C++.
Hơn thế nữa, ngôn ngữ C# hỗ trợ kiểu XML, cho phép chèn các tag XML để
phát sinh tự động các document cho lớp.
C# cũng hỗ trợ giao diện interface, nó được xem như một cam kết với một
lớp cho những dịch vụ mà giao diện quy định. Trong ngôn ngữ C#, một lớp chỉ
có thể kế thừa từ duy nhất một lớp cha, tức là không cho đa kế thừa như trong
ngôn ngữ C++, tuy nhiên một lớp có thể thi nhiều giao diện. Khi một lớp thực
thi một giao diện thì nó sẽ hứa là nó sẽ cung cấp chức năng thực thi giao diện.
Trong ngôn ngữ C#, những cấu trúc cũng được hỗ trợ, nhưng khái niệm về
ngữ nghĩa của nó thay đổi khác với C++. Trong C#, một cấu trúc được giới hạn,
là kiểu dữ liệu nhỏ gọn, và khi tạo thể hiện thì nó yêu cầu ít hơn về hệ điều
hành và bộ nhớ so với một lớp. Một cấu trúc thì không thể kế thừa từ một lớp
hay được kế thừa nhưng một cấu trúc có thể thực thi một giao diện.
II.TẠI SAO PHẢI SỬ DỤNG NGÔN NGỮ C#

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

11
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

Nhiều người tin rằng không cần thiết có một ngôn ngữ lập trình mới. Java,
C++, Microsoft Visual Basic, và những ngôn ngữ khác được nghĩ rằng đa cung
cấp tất cả những chức năng cần thiết.
Ngôn ngữ C# là một ngôn ngữ được dẫn xuất từ C và C++, nhưng nó được
tạo từ nền tảng phát triển hơn. Microsoft bắt đầu với công việc trong C và C++
và thêm vào những đặc tính mới để làm cho ngôn ngữ này dễ sử dụng hơn.
Nhiều trong số những đặc tính này khá giống với những đặc tính có trong ngôn
ngữ Java. Không dừng lại ở đó, Microsoft đưa ra một số mục đích khi xây dựng
ngôn ngữ này. Những mục đích này được được tóm tắt như sau:
• C# là ngôn ngữ đơn giản
• C# là ngôn ngữ hiện đại
• C# là ngôn ngữ hướng đối tượng
• C# là ngôn ngữ mạnh mẽ và mềm dẻo
• C# là ngôn ngữ có ít từ khóa
• C# là ngôn ngữ hướng module
• C# sẽ trở nên phổ biến

CHƯƠNG III
NGÔN NGỮ SQL VÀ CƠ SỞ DỮ LIỆU SQL SERVER
TỔNG QUAN VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL SERVER
SQL là ngôn ngữ truy vấn có cấu trúc, là viết tắt của cụm từ Structure Query
Language. Có nghĩa là SQL chỉ làm việc với những dữ liệu có cấu trúc dạng
bảng (table) như của Foxpro, DBase, Access ...
Trên lĩnh vực đang phát triển hiện nay là Internet, ngôn ngữ SQL được sử
dụng để nhanh chóng tạo ra các trang Web động (Dynamic Web Page). Trang

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

12
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

Web động thường có nội dung được lấy ra từ Cơ sở dữ liệu SQL có thể được sử
dụng như một chất keo kết dính giữa Cơ sở dữ liệu và trang Web. Khi người
dùng yêu cầu, SQL sẽ thực hiện việc truy cập thông tin trong Cơ sở dữ liệu trên
máy chủ và hiển thị kết quả trên trang Web. Và SQL cũng là công cụ để cập
nhật thông tin cho Cơ sở dữ liệu đó.
SQL Server 2000 là một phần mềm sử dụng ngôn ngữ SQL. Là hệ thống
quản lý cơ sở dữ liệu (Relational Database Management System - RDBMS ) sử
dụng Transact-SQL để trao đổi dữ liệu giữa Client computer và SQL Server
computer. Một RDBMS bao gồm databases, database engine và các ứng dụng
dùng để quản lý dữ liệu và các bộ phận khác nhau trong RDBMS.
SQL Server 2000 được tối ưu để có thể chạy trên môi trường cơ sở dữ liệu
rất lớn (Very Large Database Environment) lên đến Tera-Byte và có thể phục
vụ cùng lúc cho hàng ngàn user. SQL Server 2000 có thể kết hợp "ăn ý" với các
server khác như Microsoft Internet Information Server (IIS), E-Commerce
Server, Proxy Server....
SQL Server là một cơ sở dữ liệu Client/Server. Nó có hai chức năng chính :
• Chứa dữ liệu người dùng nhập vào
• Xử lý các yêu cầu gửi tới thông qua ngôn ngữ truy vấn cơ sở dữ liệu và trả

về cho ứng dụng kết quả xử lý.


I.CÁC ĐỐI TƯỢNG TRONG HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL
SERVER
1.Bảng (Table) :
Bảng là đơn vị lưu trữ dữ liệu chính trong cơ sở dữ liệu SQL Server, đó là
tập hợp dữ liệu có liên quan với nhau , là một đối tượng lưu trữ dữ liệu dưới
dạng hàng, cột. Các hàng trong bảng người ta gọi là các bản ghi chứa dữ liệu,
các cột là các trường chứa các thuộc tính của bảng.

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

13
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

2.Khung nhìn dữ liệu (View) :


Về mặt logic, bảng ảo giống như một bảng thực, nó không chứa bảng vật
lý nào mà nó chỉ là kết quả của việc thực hiện các câu lệnh Select trên những
bảng thực và dữ liệu của nó sẽ bị mất đi khi không thực hiện các câu lệnh đó.
3.Chỉ số của bảng (Index) :
Chỉ số là một cấu trúc được tạo ra để lưu trữ thông tin về vị trí các bản ghi
trong một bảng dữ liệu nhằm cải thiên tốc độ truy xuất dữ liệu. Một chỉ số được
tạo nên trên một hay nhiều bảng, mọi sự thay đổi dữ liệu trong bảng đều được
tự động cập nhật với các chỉ số có liên quan trong suốt quá trình sử dụng.
4.Thủ tục lưu trữ (Store procedure) :
Là một khối các câu lệnh truy vấn cơ sở dữ liệu, được lưu trữ trong một
thủ tục và có tham số vào cũng như giá trị trả về khi thủ tục đó được thực hiện.
5.Trigger :
Là một thủ tục lưu trữ được tự đông thực hiện bởi SQL Server khi một
bảng được sửa đổi bằng các câu lệnh UPDATE, INSERT, DELETE. Nó có thể
lưu trữ một câu lệnh đơn giản hay các câu lệnh phức tạp của T_SQL
(Transaction SQL), nhờ đó ta có thể lợi dụng cơ chế này để viết các Trigger
nhằm giải quyết các quy tắc nghiệp vụ, các mối dàng buộc phức tạp.

II.NGÔN NGỮ CƠ SỞ DỮ LIỆU SQL :


1.Định nghĩa :
Ngôn ngữ cơ sở dữ liệu (CSDL) là các câu lệnh, các mệnh đề được phát
biểu theo một quy tắc nhất định, được người sử dụng đưa vào và được hệ quản
tri CSDL xử lý
Ngôn ngữ SQL là ngôn ngữ CSDL dùng các câu lệnh để chèn/ xoá/ sửa
dữ liệu. Ngoài ra, dùng mệnh đề để hỏi, truy vấn dl, bảo vệ dữ liệu. Người ta

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

14
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

gọi đây là ngôn ngữ phi thủ tục, nghĩa là người sử dụng sử dụng các câu lệnh
của ngôn ngữ để xác định dữ liệu nào họ muốn mà không cần biết dữ liệu này
được tìm như thế nào.
2.Cách sử dụng ngôn ngữ SQL : có 2 cách
Sử dụng tương tác : người sử dụng gửi câu lệnh tới và được hệ quản trị
cơ sở dữ liệu thực thi ngay và kết quả được trả về cho người sử dụng
Nhúng các câu lệnh SQL vào trong chương trình, các chương trình này
có thể viết bằng các ngôn ngữ khác nhau, ưu điểm của phương pháp này là
được thực hiện nhanh và tăng tính mềm dẻo.

III.TÍNH TOÀN VẸN VÀ BẢO MẬT :


Hệ quản trị cơ sở dữ liệu SQL Server cho phép nhiều người sử dụng
CSDL của hệ thống nên bảo mật là vấn đề đặc biệt quan trọng, công việc này sẽ
điều khiển mọi sự truy cập và sử dụng CSDL của hệ thống. Vấn đề bảo mật ở
đây là :
- Ngăn chặn sự truy cập trái phép tới cơ sở dữ liệu.
- Không cho phép sự truy cập trái phép trên các đối tượng của hệ quản
trị cơ sở dữ liệu.
- Điều khiển không gian sử dụng đĩa.
- Điều khiển sự sử dụng tài nguyên của hệ thống.
- Khiểm tra người dùng.
- Bảo mật cơ sở dữ liệu được thực hiện ở 2 mức : bảo mật hệ thống và
bảo mật mức dữ liệu.
Bảo mật hệ thống cung cấp những kỹ thuật điều khiển sự truy nhập và sử
dụng CSDL ở mức hệ thống, cụ thể là :
- Phải đúng tên người dùng và mật khẩu.

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

15
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

- Giới hạn tài nguyên đối với người dùng.


- Bảo mật hệ thống kiểm tra những CSDL nào được phép truy nhập.
Bảo mật dữ liệu cung cấp những kỹ thuật điều khiển sự truy nhập và sử
dụng CSDL ở các đối tượng cụ thể như : người dùng được quyền truy nhập tới
lược đồ đối tượng nào, và xác định quyền thao tác với những đối tượng đó .
Trong SQL Server quyền được thực hiện một thao tác đặc biệt nào đó
trên CSDL được chia làm 2 loại :
Quyền đối tượng : là những quyền cho phép người sử dụng thực hiện một
tác động nào đó lên đối tượng, (ví dụ : INSERT, UPDATE lên một bảng).
Quyền hệ thống : là quyền cho phép người dùng sử dụng có thể thực hiện
một số lớp thao tác đặc biệt như :
Quyền tạo bảng
Quyền được tạo ra người sử dụng hoặc tạo ra các phiên làm việc.

PHẦN II
PHÂN TÍCH THIẾT KÊ WEBSITE ALBUM

CHƯƠNG I
KHẢO SÁT HỆ THỐNG
I.NÊU BÀI TOÁN

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

16
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

Hiện nay, cùng với sự phát triển không ngừng của kỹ thuật máy tính ,
mạng điện tử , công nghệ thông tin .Mạng Internet là một trong những sản
phẩm có giá trị hết sức to lớn của công nghệ thông tin ,và ngày càng trở thành
công cụ không thể thiếu , là nền tảng cho sự truyền tải và trao đổi thông tin trên
toàn cầu .Ngày nay, các hoạt động giải trí, văn hóa , thể thao , thương mại…
dần được đưa lên trên mạng và ngày càng chứng tỏ hiệu quả của Internet trong
việc chia sẻ thông tin .
Với bài tập này, em xin trình bày đơn giản một website giúp cho người
dùng có thể thao tác lưu, sửa hoặc xóa các file ảnh của mình ….
II. CÁC VẤN ĐỀ CHÍNH VÀ PHẠM VI GIẢI QUYẾT CỦA BÀI TOÁN
Website được xây dựng nhằm cung cấp cho người sử dụng một công cụ
để tạo chọ mình một góc riêng lưu lại những kỷ niệm cùng bạn bè và người
thân bằng cách lưu những tấm hình kỷ niệm vào trong hệ thống cơ sở dữ liệu
của trang web. Khi cần người dùng có thể xem lại hay thay đổi thông tin mà
mình mong muốn.
Do trang web được thiết kế cho người dùng tự quản lý phần dữ liệu ảnh
của mình thông qua tên đăng nhập và mật khẩu của người dùng khi đăng ký sử
dụng nên hệ thống chỉ phục vụ người dùng khi đã truy nhập Website thành
công bằng tên đăng nhập và mật khẩu của mình.
Hệ thống cho phép người dùng có thể lưu lại những bức ảnh theo thời
gian hoặc sự kiện đáng nhớ của mình vào một Album do chình mình tạo ra.
Người dùng có thể sửa các thông tin của ảnh như tựa đề hoặc ngày chụp ảnh
cho phù hợp, và có thể xóa ảnh đi khi nó quá cũ hoặc không muốn nhớ đến nó
nữa.
Hệ thống còn cho người dùng biết dung lượng, kính thước bức ảnh mà họ
lưu trên website.

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

17
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

CHƯƠNG II
PHÂN TÍCH HỆ THỐNG VỀ CHỨC NĂNG
I. SƠ ĐỒ CHỨC NĂNG CỦA HỆ THỐNG
Sơ đồ phân rã chức năng

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

18
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

W E B S IT E
A LB U M

Q uản lý A lbum Q uản lý Ả nh Đ ăng ký thành


viên

T hêm m ớ i
Tạo m ớ i S ử a th ô n g tin S ử a thông
X ó a A lb u m Ả nh v ào X óa Ả nh T ìm k iế m ả n h
A lb u m v ề A lb u m t in c ủ a Ả n h
A lb u m

II. SƠ ĐỒ DÒNG DỮ LIỆU


1. Các tác nhân ngoài
Tác nhân ngoài : Người sử dụng
2. Các kho dữ liệu
• Kho Ảnh
• Kho Album
• Kho User
3. Sơ đồ dòng dữ liệu
a) Một số biểu tượng trong sơ đồ dòng dữ liệu
+ Chức năng

2) Quản lý Ảnh

+ Hướng đi của dòng dữ liệu

+ Kho dữ liệu
tblUsers

b) Sơ đồ dòng dữ liệu mức đỉnh

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

19
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

Kho Album

Thông Thông tin


báo cập nhập

Kiểmtra tài
khoản
3) Quản lý Album người dùng

Gửi yêu Thông


báo Kho User
cầu cập
nhật Album

Người dùng

Gửi đăng ký tài Gửi yêu


khoản cầu cập
Thông nhật ảnh
Thông báo đăng báo
ký thành công /
không thành
công
2) Quản lý Ảnh

1) Đăng ký tài khoản


Kiểmtra tài
khoản
Thông tin Thông tin
người dùng Thông
người cập nhập
báo
dùng

Kho User Kho Ảnh

c) Sơ đồ dòng dữ liệu chức năng Quản lý Album

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

20
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

Người dùng
Thông tin
cần thêm

Thông báo
Thông báo
Thông báo Albumcần
Thông tin
xóa
cần sửa

2.1) ThêmAlbum 2.2) Sửa thông 2.3) Xóa Album


tin Album

Kho Album

d) Sơ đồ dòng dữ liệu chức năng Quản lý Ảnh

Thông tin Người dùng Ảnh cần


cần thêm tìm

Thông báo
Thông báo Thông báo
Thông tin
cần sửa Ảnh cần
xóa
2.1) Thêm ảnh 2.4) Tìm kiếm
mới ảnh
2.2) Sửa thông
tin ảnh 2.3) Xóa ảnh

Ko Ảnh

4. Các thực thể trong cơ sở dữ liệu

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

21
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

• Người sử dụng (Mã người dùng, tên truy cập, mật khẩu, Địa chỉ Email)
• Ảnh (Mã Ảnh, tên ảnh, tiêu đề, ngày chụp, ngày đăng, chiều dài, chiều
rộng, dung lượng ảnh)
• Album (Mã Album, tên Album, lời tựa cho album, ngày tạo)
5. Quan hệ các bảng trong cơ sở dữ liệu

CHƯƠNG III

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

22
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

THIẾT KẾ HỆ THỐNG
I.CÁC TIẾN TRÌNH QUAN TRỌNG
1.Tiến trình đăng kí tài khoản người sử dụng
Dữ liệu vào
Thông tin cá nhân của người dùng: Email
Thông tin về tài khoản cần đăng kí:Tên truy cập, Mật khẩu
Dữ liệu ra
Thông báo đăng kí thành công nếu dữ liệu hợp lệ
Thông báo không đăng kí được
Mô tả tiến trình
Kiểm tra Email đã tồn tại chưa
Nếu đã tồn tại thì yêu cầu nhập Email khác
Lưu thông tin vào kho nhà quản trị
Kiểm tra tên đăng nhập đã tồn tại chưa
Nếu đã tồn tại thì yêu cầu nhập tên khác
Lưu thông tin vào kho nhà quản trị
Thông báo đăng kí thành công
2.Tiến trình sửa đổi tài khoản người sử dụng
Dữ liệu vào
Thông tin cá nhân của người sử dụng cần sửa: Email
Thông tin mới của tài khoản người sử dụng: Mật khẩu, Tên truy cập
Dữ liệu ra
Thông báo sửa đổi thành công
Thông báo cho người dùng biết nếu không sửa đổi được
Mô tả tiến trình
Kiểm tra tên đăng nhập đã tồn tại chưa

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

23
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

Nếu đã tồn tại thì yêu cầu nhập tên khác


Lưu thông tin vào kho nhà quản trị
Thông báo sửa đổi thành công
3.Tiến trình cập nhật Ảnh của người sử dụng.
Dữ liệu đầu vào:
Đường dẫn của ảnh muốn Upload lên website .
Các thông tin về ảnh : Tiêu đề cho bức ảnh,Ngày chụp ảnh
Dữ liệu ra:
Cập nhật thông tin vào Cơ sở dữ liệu: tblImage
Mô tả tiến trình
a)Nhập mới
Repeat
 Trang trước= trang hiện tại;
 Mở trang thêm Ảnh ;

Nhập các thông tin cần thiết của Ảnh;


Kiểm tra dữ liệu nhập:
If (hợp lệ) then:
 Cho phép nhập tiếp
 Tạo câu lệnh Insert vào tblImage ;
 Mở kết nối thực hiện truy vấn đó;
 If (thành công) then
- Thông báo “Cập nhật thành công”
- Nếu nhập tiếp thì quay về trang Nhập Ảnh;
- Else quay về trang trước;
Else
- Thông báo “Không thành công”;

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

24
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

- Return trang Nhập Ảnh;


 Đóng kết nối;
Else
 Thông báo “ dữ liệu không hợp lệ”;
 Yêu cầu nhập lại;
Until (đóng trang nhập)
b)Sửa các thông tin của Ảnh đã tồn tại
 Chọn ảnh cần sửa;

 Truyền ID của ảnh sang trang sửa ảnh và lưu vào biến ID_Image;

 Mở trang sửa
 Đóng tất cả các kết nối đang mở;
 Tạo truy vấn Select tới bảng tblImage với điều kiện:

iImageID = ID_Image;
 Mở kết nối thực hiện truy vấn ;
 Lấy ra các thông tin đã lưu của Ảnh để hiện lên trang sửa;

 Sửa các thông tin của Ảnh;

 Kiểm tra tính hợp lệ của dữ liệu;


If (hợp lệ ) then
 Tạo câu lệnh Update vào tblImage;
 Mở kết nối thực hiện truy vấn đó;
If (thành công) then
- Thông báo “Cập nhật thành công”;
- Return trang trước;
Else
- Thông báo “Không thành công”
- Return Mở lại Trang Sửa Ảnh;

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

25
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

Else
 Thông báo lỗi;
 Return Sửa lại các dữ liệu lỗi;
 Đóng các kết nối;
c) Xóa Ảnh
• Mở trang Hiển thị Ảnh;
• Repeat:
+ Chọn Ảnh cần xóa;
+ Lấy ID của ảnh đó lưu vào ID_Image;
+ Tạo truy vấn Delete tới tblImage:
+ Mở kết nối thực hiện truy vấn ;
+ Xóa file ảnh trùng tên được lưu trên host.
+ If (thành công) then
Thông báo “Xóa thành công”;
Else
Thông báo “Không thành công”
+ Đóng các kết nối;
Until (Đóng trang duyệt Tour)
4.Tiến trình Tìm kiếm Ảnh
Dữ liệu vào
Thông tin cần tìm kiếm: Những bức ảnh mình có
Thông tin tìm kiếm(từ khóa)
Dữ liệu ra
Thông tin về Ảnh
Thông báo kết quả nếu không tìm thấy
Mô tả tiến trình

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

26
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

Repeat :
Lựa chọn các thông tin tìm kiếm
Kiểm tra tính hợp lệ của dữ liệu
If(hợp lệ ) then
Tạo truy vấn tới tblImage
Mở kết nối
Nếu(kết quả khác rỗng)
Duyệt danh sách các thông tin trong cơ sở dữ liệu
Đưa ra danh sách các thông tin đã tìm thấy ra ngoài
Nếu (kết quả =rỗng)
Đưa ra thông báo nếu không tìm thấy các thông tin liên quan
Đóng kết nối
Else
Thông báo dữ liệu không hợp lệ
Hiện trang tìm kiếm
Until(Kết thúc tìm kiếm)
II.MÔ TẢ CHI TIẾT CÁC LỚP ĐỐI TƯỢNG CHÍNH VÀ QUAN HỆ
TRONG CƠ SỞ DỮ LIỆU
1. tblUsers
Chứa các thông tin về người đăng ký là thành viên của trang web.
Bảng gồm các trường User, Password, Email là các thông tin mà người
đăng ký thành viên phải nhập đầy đủ khi đăng ký thành viên

Column name Data Type Description


PK_iUserID int Khóa chính ,tự tăng khi thêm bản ghi mới
sUserName varchar(30) Lưu tên đăng nhập của người dùng
sPassword varchar(30) Lưu mật khẩu của người dùng
sEmail varchar(35) Lưu địa chỉ hòm thư của người dùng

2. tblImage

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

27
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

Chứa các thông tin về bức ảnh mà người dùng up lên trang web
Column name Data Type Description
PK_iImageID int Khóa chính ,tự tăng khi thêm bản ghi mới
FK_iAlbumID int Khóa ngoại liên kết với ID_Album tblAlbum
sImgTitle nvarchar(50) Tựa đề của ảnh
sImgDate Varchar(30) Ngày tạo ảnh
sImgImage varchar(30) Đường dẫn đến ảnh
sCreateImage varchar(30) Ngày chụp ảnh
iHeight Int Chiều cao của ảnh
iWidth Int Độ rộng của ảnh
iSize Int Dung lượng ảnh

3. tblAlbum
Chứa thông tin về Album được tạo.
Column name Data Type Description
PK_iAlbumID int Khóa chính ,tự tăng khi thêm bản ghi mới
sAlbContent ntext Nội dung album
sAlbTitle nvarchar(50) Tiêu đề album
SK_iAlbum Int Khóa xác định album có là album con hay ko và
là album con của album nào.
sCreateAlbum varchar(50) Ngày tạo album

4.tblUser_Album
Chứa thông tin về album, lưu Album nào, của ai….
Column name Data Type Description
PK_iUserAlbumID int Khóa chính ,tự tăng khi thêm bản ghi mới
FK_iUserID Int Khóa ngoại liên kết với ID_User tblUser
FK_iAlbumID Int Khóa ngoại liên kết với ID_Album tblAlbum

III.CÁC GIAO DIỆN MÀN HÌNH

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

28
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

1.Giao diện trang chủ

2.Giao diện trang đăng ký tài khoản

3.Giao diện hiển thị khi người dùng đăng nhập thành công

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

29
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

4.Giao diện hiển thị ảnh và album con

5.Giao diện thông tin cá nhân

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

30
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

6.Giao diện tìm kiếm

IV.MỘT SỐ MÃ NGUỒN CỦA CÁC MODUL QUAN TRỌNG

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

31
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

TRONG HỆ THỐNG
1. Một số hàm hệ thống

a) Hàm kết nối cớ sở dữ liệu


using System;
using System.Data.SqlTypes;
using System.Data.SqlClient;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public class connectDB


{
public connectDB()
{
}
// Mở kết nối CSDL
public void openConnection(ref SqlConnection Cnn)
{
Cnn = null;
String n_ConnectionString =
ConfigurationManager.ConnectionStrings["database"].To
String();
Cnn = new SqlConnection(n_ConnectionString);
Cnn.Open();
}
}
b) Các hàm kiểm tra điều kiện
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Text;
using System.Web.UI;

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

32
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

public class function


{
connectDB connect = new connectDB();
public function()
{
}
public Int32 TotalRow(ref SqlConnection Cnn, String
sql)
{
Int32 row = 0;
connect.openConnection(ref Cnn);
using( SqlCommand cmd =Cnn.CreateCommand())
{
cmd.CommandType = CommandType.Text;
cmd.CommandText = sql ;
SqlDataReader dr = cmd.ExecuteReader();
while(dr.Read())
{
row = Int32.Parse(dr["dem"].ToString());
}
}
Cnn.Close();
return row;
}

public bool checkString(String s)


{
String [] split = s.Split(new Char []
{' ', ',', '.', ':','-'});
if (split.Length > 1)
{
return false;
}
return true;
}
public bool testImage(String s)
{

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

33
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

bool bl=false;
String[] allowedExtensions =
{ "gif", "png", "jpeg", "jpg" };
if (s.IndexOf('.') == -1)
{
bl = false;
}
else
{
String[] split = s.Split(new Char[] { '.' });
for (int i = 0; i < allowedExtensions.Length; i++)
{
if (split[split.Length-1] == allowedExtensions[i])
{
bl = true;
}
}
}
return bl;
}

public bool checkExtension(FileUpload fileupload)


{
String fileExtension = System.IO.Path.GetExtension
(fileupload.FileName).ToLower();
String[] allowedExtensions =
{".gif",".png",".jpeg", ".jpg"};
for (int i = 0; i < allowedExtensions.Length; i++)
{
if (fileExtension == allowedExtensions[i])
{
return true;
}
}
return false;
}
}
2. Modul đăng ký tài khoản
using System;

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

34
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

using System.Data;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class Dangky : System.Web.UI.Page


{
function fun = new function();
protected void Page_Load(object sender, EventArgs e)
{
lbLoi.Text = "";
lblThongbao.Text = "";
btnDangky.Enabled = false;
CheckBox1.AutoPostBack = true;
txtUserName.AutoPostBack = true;
}

Private string n_ConnectionString =


ConfigurationManager.ConnectionStrings["database"].ToString();

protected void CustomValidator1_ServerValidate(object source,


ServerValidateEventArgs args)
{
using (SqlConnection Cnn = new
SqlConnection(n_ConnectionString))
{
using (SqlCommand cmdUser = new SqlCommand("spUsers_GetByPK",
Cnn))
{
cmdUser.CommandType = CommandType.StoredProcedure;
cmdUser.Parameters.Add("@PK_iUserID",SqlDbType.Int).Value = 0;
using (SqlDataAdapter daUser = new SqlDataAdapter(cmdUser))
{
using (DataSet dsUser = new DataSet())
{
daUser.Fill(dsUser, "Users");
string sUserName = txtUserName.Text;
string sFilter = " sUserName=" + "'" + sUserName + "'";
DataTable dtRole = dsUser.Tables["Users"];
DataRow[] rows = dtRole.Select(sFilter);
if (rows.Length > 0)
args.IsValid = false;
else

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

35
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

args.IsValid = true;
}//??DataAdapter tu mo*
}
}
}
}
protected void btnDangky_Click(object sender, EventArgs e)
{
if (!fun.checkString(txtUserName.Text.ToString().Trim()))
{
lbLoi.Text = "Tên đăng nhập không được có ký tự đặc biệt";
}
else
{
if (txtUserName.Text.Trim().Length < 6)
lbLoi.Text = "Tên đăng nhập phải nhiều hơn 5 ký tự!";
else
{
try
{
if (!Page.IsValid)
return;
using(SqlConnection Cnn=new SqlConnection(n_ConnectionString))
{
int iRet = 0;
using (SqlCommand Cmd = Cnn.CreateCommand())
{
Cmd.CommandType = CommandType.StoredProcedure;
Cmd.CommandText = "spUsers_Insert ";
Cmd.Parameters.AddWithValue("@sUserName", txtUserName.Text);
Cmd.Parameters.AddWithValue("@sPassword", txtPassword.Text);
Cmd.Parameters.AddWithValue("@sEmail", txtEmail.Text);
Cnn.Open();
iRet = Cmd.ExecuteNonQuery();
if (iRet != 0)
lblThongbao.Text = "Bạn đã đăng ký thành công!";
Reset();
Cnn.Close();
}
}
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
}

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

36
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

protected void Reset()


{
txtUserName.Text = "";
txtPassword.Text = "";
txtEmail.Text = "";
CheckBox1.Checked = false;
}

protected void Check(object sender, EventArgs e)


{
if (CheckBox1.Checked)
{
btnDangky.Enabled = true;
}
else
{
btnDangky.Enabled = false;
}
}
}
3. Modul tạo Album
public partial class Taoalbum : System.Web.UI.Page
{
connectDB connect = new connectDB();
RoleProviders role = new RoleProviders();
SqlConnection Cnn = null;
private String sUserName;
private String sPassword;
private Int32 ID_Alb;

protected void Page_Load(object sender, EventArgs e)


{
txtCreate.AutoPostBack = true;
if (Session["sUserName"] == null)
{
Response.Redirect(".//Default.aspx");
}
else
{
try
{
ID_Alb=Convert.ToInt32(Request.QueryString["AID"].ToString());
}

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

37
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

catch (Exception ex) { }


}
}

protected void btnTao_Click(object sender, EventArgs e)


{
try
{
this.ID_Alb =
Convert.ToInt32(Request.QueryString["AID"].ToString());
}
catch (Exception ex)
{
Response.Write(ex.ToString());
}
connect.openConnection(ref Cnn);
if (role.IdentifyForAlbum(ref Cnn, txtCreate.Text.Trim()))
{
lbloi.Text = "Tên Album đã được dùng";
}
else
{
using (SqlCommand Cmd = Cnn.CreateCommand())
{
Cmd.CommandType = CommandType.StoredProcedure;
Cmd.CommandText = "spAlbum_Insert";
Cmd.Parameters.AddWithValue("@sAlbTitle",
txtCreate.Text.Trim());
Cmd.Parameters.AddWithValue("@sAlbContent",
txtContent.Text.Trim());
Cmd.Parameters.AddWithValue("@sCreateAlbum",
DateTime.Now.ToString("dd/MM/yyyy"));
if(ID_Alb >0 && checkIDAlbum(ref Cnn,this.ID_Alb))
{
Cmd.Parameters.AddWithValue("@SK_iAlbum",ID_Alb);
}
else Cmd.Parameters.AddWithValue("@SK_iAlbum",DBNull.Value);
Cmd.ExecuteNonQuery();
}
int UserID = role.getUserId(ref Cnn,
(String)Session["sUsername"], (String)Session["sPassword"]);
int iLastAlbumID = getLastAlbumId();
insert(UserID, iLastAlbumID);
Cnn.Close();
txtCreate.Text = "";
txtContent.Text = "";
lbloi.Text = "Tạo thành công";

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

38
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

Response.Redirect(".//chitiet.aspx");
}
}

protected void btnHuy_Click(object sender, EventArgs e)


{
Response.Redirect(".//chitiet.aspx");
}

protected void txtCreate_TextChanged(object sender,EventArgse)


{
if (txtCreate.Text.Trim().Length == 0)
{
lbloi.Text = "Tên album không được trống";
}
}

public bool insert(int userid, int albumid)


{
connect.openConnection(ref Cnn);
using (SqlCommand cmd = Cnn.CreateCommand())
{
cmd.CommandType = CommandType.Text;
cmd.CommandText = " insert into
tblUser_Album(FK_iUserID,FK_iAlbumID) values(" + userid + ","
+ albumid + ")";
int i = cmd.ExecuteNonQuery();
Cnn.Close();
if (i > 0) return true;
else return false;
}
}

public int getLastAlbumId()


{
int iLastAlbumId = 1;
connect.openConnection(ref Cnn);
using (SqlCommand cmd = Cnn.CreateCommand())
{
cmd.CommandType = CommandType.Text;
cmd.CommandText = " select PK_iAlbumID from tblAlbum ";
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
iLastAlbumId = Convert.ToInt32(dr["PK_iAlbumID"].ToString());
}
dr.Close();

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

39
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

Cnn.Close();
}
return iLastAlbumId;
}
private bool checkIDAlbum(ref SqlConnection Cnn, int IDAlbum)
{
bool bl;
String sql = "select * from tblAlbum where PK_iAlbumID =" +
this.ID_Alb + "";
using (SqlCommand cmd = Cnn.CreateCommand())
{
cmd.CommandType = CommandType.Text;
cmd.CommandText = sql;
SqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
bl = true;
else bl = false;
dr.Close();
}
return bl;
}
}
4. Modul cập nhật ảnh
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Drawing;

public partial class Nhapanh : System.Web.UI.Page


{
connectDB connect = new connectDB();
RoleProviders role = new RoleProviders();
function fun = new function();
SqlConnection Cnn = null;
private int ID_Alb;
protected void Page_Load(object sender, EventArgs e)

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

40
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

{
if (Session["sUserName"] == null)
{
Response.Redirect(".//Default.aspx");
}
else
{
ID_Alb =
Convert.ToInt32(Request.QueryString["AID"].ToString());
}
}

protected void Up_Click(object sender, EventArgs e)


{
if (txtTitle.Text.Trim().Length == 0)
{
txtTitle.Text = "";
lbloi.Text = "Tên ảnh không được trống";
}
else
{
if (FileUploadImage.FileName != "")
{
if (!fun.checkExtension(FileUploadImage))
{
lbloi.Text = "File nhập vào không là file ảnh!";
}
else
{
String sLocationPath="Upload/"+ FileUploadImage.FileName;
FileUploadImage.SaveAs(Server.MapPath("Upload/") +
FileUploadImage.FileName);
System.Drawing.Image img =
System.Drawing.Image.FromFile(Server.MapPath
("Upload/")+ FileUploadImage.FileName);
connect.openConnection(ref Cnn);
using (SqlCommand Cmd = Cnn.CreateCommand())
{
Cmd.CommandType = CommandType.StoredProcedure;
Cmd.CommandText = "spImage_Insert";
Cmd.Parameters.AddWithValue("@FK_iAlbumID", this.ID_Alb);
Cmd.Parameters.AddWithValue("@sImgTitle",
txtTitle.Text.ToString());

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

41
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

Cmd.Parameters.AddWithValue("@sImgDate",
DateTime.Now.ToString("dd/MM/yyyy"));
Cmd.Parameters.AddWithValue("@sImgImage",
FileUploadImage.FileName.ToString());
Cmd.Parameters.AddWithValue("@sCreateImage",
txtDateCreate.Text.ToString()+"/"+
txtMonthCreate.Text.ToString()+"/"+
txtYearCreate.Text.ToString());
Cmd.Parameters.AddWithValue("@iHeight",
img.Size.Height.ToString());
Cmd.Parameters.AddWithValue("@iWidth",
img.Size.Width.ToString());
Cmd.Parameters.AddWithValue("@iSize",
FileUploadImage.PostedFile.ContentLength / 1024);
Cmd.ExecuteNonQuery();
lbloi.Text = "Thành công";
Reset();
Cnn.Close();
}
}
}
}
}

protected void Reset()


{
txtTitle.Text = "";
txtDateCreate.Text = "";
txtMonthCreate.Text = "";
txtYearCreate.Text = "";
}

protected void Huy_Click(object sender, EventArgs e)


{
txtTitle.Text = "";
Response.Redirect(".//Hienthianh.aspx");
}

V. KẾT LUẬN

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

42
Báo cáo đồ án tốt nghiệp Khoa Công Nghệ Tin Học

Qua bài tập thi tốt nghiệp này đã giúp em tổng hợp lại tất cả các kiến
thức học trên ghế nhà trường trong suốt 4 năm qua. Bài tập tuy không lớn
nhưng đã cho em một lượng kiến thức không ít về công cụ hỗ trợ lập trình
ASP.NET và sẽ rất có ích cho em sau khi ra trường và đi làm.
Trong quá trình làm bài, em đã được thầy hướng dẫn và các bạn chỉ và
sửa cho những chỗ sai hoặc thiếu sót trong quá trình làm bài.
Một lần nữa em xin cảm ơn thầy Nguyễn Đức Tuấn người đã hết lòng
giúp đỡ em trong suốt quá trình thực hiện và hoàn thành bài tập tốt nghiệp
này.
Xin chân thành cảm ơn tất cả các ý kiến đóng góp và sự giúp đỡ của
bạn bè đối với bài tập tốt nghiệp này

TÀI LIỆU THAM KHẢO


• MSDN của Micrsoft _ http://msdn.microsoft.com
• WEBSITE : http://w3schools.com/aspnet
• Phân tích và thiết kế hệ thống thông tin _ Tác giả: Đào Thanh Tĩnh
• Phân tích và thiết kế hệ thống thông tin _ Tác giả: Nguyễn Văn Ba

SV:Lê Ngọc Huệ GVHD:Nguyễn Đức Tuấn

43

You might also like

  • Danh mục TL phần Tài Chính-Ngân Hàng
    Danh mục TL phần Tài Chính-Ngân Hàng
    Document65 pages
    Danh mục TL phần Tài Chính-Ngân Hàng
    duc_truong_6
    No ratings yet
  • LỜI mỞ ĐẦU
    LỜI mỞ ĐẦU
    Document2 pages
    LỜI mỞ ĐẦU
    duc_truong_6
    No ratings yet
  • Truyen Hinh Tuong Tac
    Truyen Hinh Tuong Tac
    Document26 pages
    Truyen Hinh Tuong Tac
    duc_truong_6
    No ratings yet
  • TTHCM3
    TTHCM3
    Document16 pages
    TTHCM3
    duc_truong_6
    No ratings yet
  • DVDL 15
    DVDL 15
    Document63 pages
    DVDL 15
    duc_truong_6
    100% (5)
  • CNTT7
    CNTT7
    Document71 pages
    CNTT7
    duc_truong_6
    No ratings yet
  • CNTT6
    CNTT6
    Document148 pages
    CNTT6
    duc_truong_6
    No ratings yet
  • Chuong 1
    Chuong 1
    Document4 pages
    Chuong 1
    duc_truong_6
    No ratings yet
  • Tieu Luan Tu Tuong Ho Chi Minh Ve Van de Dao Duc Cach Mang
    Tieu Luan Tu Tuong Ho Chi Minh Ve Van de Dao Duc Cach Mang
    Document17 pages
    Tieu Luan Tu Tuong Ho Chi Minh Ve Van de Dao Duc Cach Mang
    Nguyen Van Thanh
    100% (2)
  • TTHCM2
    TTHCM2
    Document6 pages
    TTHCM2
    duc_truong_6
    No ratings yet
  • DVDL 14
    DVDL 14
    Document46 pages
    DVDL 14
    duc_truong_6
    No ratings yet
  • DVDL 13
    DVDL 13
    Document64 pages
    DVDL 13
    duc_truong_6
    0% (1)
  • TTHCM1
    TTHCM1
    Document9 pages
    TTHCM1
    duc_truong_6
    No ratings yet
  • CNTT4
    CNTT4
    Document100 pages
    CNTT4
    duc_truong_6
    No ratings yet
  • CNTT5
    CNTT5
    Document137 pages
    CNTT5
    duc_truong_6
    No ratings yet
  • MT 9
    MT 9
    Document22 pages
    MT 9
    duc_truong_6
    No ratings yet
  • MT 7
    MT 7
    Document25 pages
    MT 7
    duc_truong_6
    No ratings yet
  • MT 10
    MT 10
    Document37 pages
    MT 10
    duc_truong_6
    No ratings yet
  • MT 7
    MT 7
    Document25 pages
    MT 7
    duc_truong_6
    No ratings yet
  • MT 4
    MT 4
    Document57 pages
    MT 4
    duc_truong_6
    No ratings yet
  • MT 5
    MT 5
    Document13 pages
    MT 5
    duc_truong_6
    No ratings yet
  • Xulychat Thairan Doc 4977
    Xulychat Thairan Doc 4977
    Document30 pages
    Xulychat Thairan Doc 4977
    linkin_snake_girl
    No ratings yet
  • MT 2
    MT 2
    Document114 pages
    MT 2
    duc_truong_6
    No ratings yet
  • MT 3
    MT 3
    Document65 pages
    MT 3
    duc_truong_6
    No ratings yet
  • Xay Dung Mo Hinh Quan Ly Khai Thac Khu Du Lich Chua Huong 4972
    Xay Dung Mo Hinh Quan Ly Khai Thac Khu Du Lich Chua Huong 4972
    Document66 pages
    Xay Dung Mo Hinh Quan Ly Khai Thac Khu Du Lich Chua Huong 4972
    BAO008
    No ratings yet
  • DVDL6
    DVDL6
    Document88 pages
    DVDL6
    duc_truong_6
    No ratings yet
  • MT 1
    MT 1
    Document90 pages
    MT 1
    duc_truong_6
    No ratings yet
  • DVDL7
    DVDL7
    Document53 pages
    DVDL7
    duc_truong_6
    No ratings yet
  • BNH2
    BNH2
    Document85 pages
    BNH2
    duc_truong_6
    No ratings yet