Tài liệu Đề tài Xây dựng website album: 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 ...
43 trang |
Chia sẻ: hunglv | Lượt xem: 1239 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Đề tài Xây dựng website album, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
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
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.
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 ):
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 (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 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:
int Add(int x, int y)
{
return x+y ;
}
Test ASP.NET Page
2+2 =
<%
For (int i=0; i<10; i++){
%>
RowCol0 RowCol1
<%
}
%>
<%
Response.Write(“Writen directly to Response ”);
%>
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à 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 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 :
Đ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 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 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#
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 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.
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 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.
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
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.
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
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
+ Hướng đi của dòng dữ liệu
+ Kho dữ liệu
b) Sơ đồ dòng dữ liệu mức đỉnh
c) Sơ đồ dòng dữ liệu chức năng Quản lý Album
d) Sơ đồ dòng dữ liệu chức năng Quản lý Ảnh
4. Các thực thể trong cơ sở dữ liệu
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
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
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”;
- 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;
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
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
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
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
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
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
4.Giao diện hiển thị ảnh và album con
5.Giao diện thông tin cá nhân
6.Giao diện tìm kiếm
IV.MỘT SỐ MÃ NGUỒN CỦA CÁC MODUL QUAN TRỌNG
TRONG HỆ THỐNG
Một số hàm hệ thống
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"].ToString();
Cnn = new SqlConnection(n_ConnectionString);
Cnn.Open();
}
}
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;
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)
{
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;
}
}
Modul đăng ký tài khoản
using System;
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
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);
}
}
}
}
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;
}
}
}
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());
}
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";
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();
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;
}
}
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)
{
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());
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
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 _
WEBSITE :
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
Các file đính kèm theo tài liệu này:
- Xy d7921ng Website Album.doc