Tải bản đầy đủ (.docx) (19 trang)

báo cáo bài tập lớn công nghệ dotnet (asp net)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (558.53 KB, 19 trang )

Báo cáo BTL ASP.Net
VIỆN ĐẠI HỌC MỞ HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO BÀI TẬP LỚN
CÔNG NGHỆ DOTNET (ASP.NET)

ĐỀ SỐ 07
Giáo viên:

LÊ HỮU DŨNG

1


Báo cáo BTL ASP.Net

Hà Nội, tháng 1/2013

2


Báo cáo BTL ASP.Net
Mục lục

3


Báo cáo BTL ASP.Net
NHẬN XÉT CỦA GIÁO VIÊN
…………………………………………………………………………………………………………


…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
……………
Hà Nội, ngày…..tháng…….năm 2012
Giáo viên giảng dạy

4


Báo cáo BTL ASP.Net
I. TỔNG QUAN.
1. Ngôn ngữ ASP.NET
a. Giới thiệu ngôn ngữ ASP.NET

Hiện tại ASP 3.0 đã và đang trở thành kịch bản được nhiều người sử dụng để thiết kế ứng
dụng thương mại điện tử dưới nhiều hình thức khác nhau. Chúng được sự hộ trợ mạnh của ngôn
ngữ lập trình C#, VB.NET… và cơ sở dữ liệu SQL Server cùng với sự ra đời của công nghệ COM
và DCOM, ứng dụng trở nên hoàn hảo và ưu việt hơn trong quá trình trao đổi thông tin trên mạng
Internet và Intranet.
Tuy nhiên, Microsoft đã và đang nổ lực cho một công nghệ Web xử lý phía máy chủ hoàn
toàn mới đó là ASP.NET. độc lập với mọi trình duyệt. Điều này có nghĩa là trình duyệt không cần
phải cài đặt bất kỳ công cụ hỗ trợ nào để duyệt trang Web dạng ASP.NET(.aspx). Với kỹ thuật cho
phép mọi thực thi đều nằm trên trình chủ (Server), có nghĩa là trình duyệt xử lý nhiều vấn đề cùng
một lúc cho nhiều người dùng, chính vì vậy đòi hỏi cấu hình máy chủ có cấu hình mạnh và đòi hỏi
băng thông có khả năng truyền dữ liệu với khối lượng lớn và tốc độ truy cập nhanh.
ASP.NET được thiết kế tương thích với các phiên bản ASP trước đó. Bạn có thể triển khai
ứng dụng phát triển bằng ASP.NET chung với ứng dụng phát triển bằng ASP trên cùng một máy chủ
mà không cần thay đổi cấu hình của ứng dụng ASP
Những ngôn ngữ được dùng để viết ASP.NET là VBScript, Jscript, C#. Tùy thuộc vào khai
báo chỉ mục trong đối tượng chỉ dẫn đầu trang ASP.NET, bạn có thể chỉ rõ ngôn ngữ lập trình bạn
sử dụng để xây dựng trang ASP.NET.
Công nghệ ASP.NET sẽ hướng các lập trình viên Web vào quỹ đạo của chúng bằng các lý
do sau :
- Độc lập ngôn ngữ cho phép bạn không biên dịch ngôn ngữ, thực hiện tối ưu các ngôn ngữ
kết hợp.
- Dễ phát triển:ASP.NET cho phép bạn khai báo và viết mã và đơn giản hóa vấn đề.
- Tách mã và nội dung ra hai phần khác nhau: Trong mở Web form bạn có thể khai báo một
số thủ tục trên tập tin với các tên mở rộng.
- Tính mềm dẻo và khả năng nâng cấp: Cho phép chúng ta quản lý trạng thái của các Sesion
và tạo form trên một ứng dụng sử dụng hệ thống Server.
- Hỗ trợ nhiều trình khách có thể tự động nhận dạng trình khách để hiện thị cho phù hợp

5



Báo cáo BTL ASP.Net
- Thay vì sử dụng mô hình DLL, COM, DCOM trước đây, trong trường hợp ứng dụng sử
dụng công nghệ ASP.NET bạn có thể sử dụng dịch vụ tương tự có tên là Web Services
b. Ưu điểm của ASP.NET
ASP.NET có nhiều ưu điểm hơn các nền tảng khác khi dùng nó để tạo ứng dụng Web. Có
thể phần lớn những ưu điểm quan trọng của nó đi kèm với các máy chủ Windows và các công cụ
lập trình Windows. Ứng dụng web được tạo bởi ASP.NET được tạo ra, bắt lỗi và triển khai rất dễ
dàng thông qua các tác vụ có thể thực thi trọn vẹn trong một môi trường phát triển duy nhất - Visual
Studio. NET.
Với những nhà phát triển ứng dụng Web, ASP.NET bộc lộ những ưu điểm sau đây :
- Những phần thực thi được của ứng dụng Web được biên dịch, vì vậy chúng thực thi nhanh
hơn là các kịch bản thông dịch.
- Các cập nhập ngay lập tức giúp cho việc triển khai các ứng dụng Web mà không phải khởi
động lại máy chủ.
- Truy cập tới .NET Framework, có thể đơn giản hóa nhiều khía cạnh trong lập trình
Windows
- Sử dụng nhiều những hiểu biết về ngôn ngữ lập trình C#, VB, vốn đã được tăng cường để
hỗ trợ lập trình hướng đối tượng.
- Giới thiệu ngôn ngữ lập trình mới mà nó cung cấp khả năng an toàn kiểu, hướng đối tượng,
so với ngôn ngữ lập trình C.
- Tự động quản lý trạng thái để điều khiển trang Web (được gọi làServer Controls) vì vậy
chúng có gì đó giống với các Windows Controls.
- Các tính năng bảo mật được xây dựng sẵn thông qua máy chủ Windows hoặc thông qua
các phương thực xác nhận/phân quyền khác.
- Tích hợp chặt chẽ với ADO.NET để cung cấp các truy xuất CSDL và các công cụ thiết kế
CSDL trực quan trong bộ VS.NET
- Hỗ trợ đầy đủ XML, CSS và các chuẩn Web đã được thiết lập hoặc mới khác.
- Các tính năng sẵn có để đệm các trang web thường xuyên được yêu cầu trên máy chủ, các
nội dung bản địa hóa cho các ngôn ngữ và trao đổi, nhận ra khả năng tương thích trình duyệt


6


Báo cáo BTL ASP.Net
2. Yêu cầu bài tập:
a.Mục đích, yêu cầu của bài

1. Tạo CSDL SQL Server theo sơ đồ trên, thiết lập các quan hệ, nhập một số dữ liệu.
2. Tạo website với các webform theo yêu cầu như sau:
a. User_Login.aspx:
• Cho phép người dùng nhập tên truy cập, mật khẩu để đăng nhập
• Nếu đăng nhập thành công thì lưu Mã người dùng vào Session rồi hiển thị liên kết sang
trang News_List.aspx.
b. News_List.aspx:
• Lấy mã người dùng từ Session.
• Hiện danh sách tin theo mã người dùng đó lên 1 GridView theo thứ tự giảm dần của ngày
đăng tin


Khi người dùng click vào Tiêu đề tin nào thì chuyển sang trang News_Detail.aspx có

truyền theo Mã tin trên QueryString.
c. News_Detail.aspx:
• Nhận Mã tin truyền vào trên QueryString.
• Hiển thị tin tương ứng với mã tin đó
• Cập nhật tăng số l lần xem (iViewTimes) của tin đó lên 1 đơn vị.
b. Yêu cầu khác.
- Không sử dụng các điểu khiển Datasource


7


Báo cáo BTL ASP.Net

8


Báo cáo BTL ASP.Net
II. PHÂN TÍCH HỆ THỐNG.
1. Yêu cầu chi tiết về CSDL:
Bảng tblUsers có PK_iUserID là khóa chính, dữ liệu kiểu int

Bảng tblNews có PK_iNewsID là khóa chính, dữ liệu kiểu int

Bảng tblNewsCategory có PK_iNewsCategory là khóa chính, dữ liệu kiểu int

Bảng tblCategories có PK_iCategoryID là khóa chính, kiểu dữ liệu int

9


Báo cáo BTL ASP.Net

2.Chức năng của bài tập.
a. Mô tả các chức năng.


Đăng nhập:
• Màn hình hiển thị ra form đăng nhập.

• Cho phép người dùng nhập tên truy cập, mật khẩu để đăng nhập



Hiển thị danh sách tin lên Gridview:
• Nếu đăng nhập thành công thì lưu Mã người dùng vào Session rồi hiển thị liên kết sang
trang News_List.aspx.
• Lấy mã người dùng từ Session.
• Hiện danh sách tin theo mã người dùng đó lên 1 GridView theo thứ tự giảm dần của ngày
đăng tin

10


Báo cáo BTL ASP.Net



Hiển thị chi tiết tin:


Khi người dùng click vào Tiêu đề tin nào thì chuyển sang trang News_Detail.aspx có

truyền theo Mã tin trên QueryString.
• Nhận Mã tin truyền vào trên QueryString.
• Hiển thị tin tương ứng với mã tin đó
• Cập nhật tăng số l lần xem (iViewTimes) của tin đó lên 1 đơn vị.

11



Báo cáo BTL ASP.Net
b. Code của các chức năng:


User_Login.aspx
<%@ Page Language="C#"
Inherits="User_Login" %>

AutoEventWireup="true"

CodeFile="User_Login.aspx.cs"

html
PUBLIC
"-//W3C//DTD
XHTML
1.0
Transitional//EN"
" /><html xmlns=" /><head runat="server">
<title>Login Form</title>
<style type="text/css">
.style1
{
font-family:Tahoma;
color:#515159;
position:absolute;
z-index:1;
margin-top:200px;

margin-left:525px;
}
.bglogin
{
width:345px;
height:195px;
position:absolute;
z-index:0;
margin-top:200px;
margin-left:500px;
}
.notif
{
position:absolute;
z-index:2;
margin-top:180px;
margin-left:505px;
color:#ffffff;
font-style:italic;
}
</style>
</head>
<body background="images/bg.jpg">
<img src="images/bglogin.png" class="bglogin" alt="login" />
<asp:Label ID="lblStatus" runat="server" Font-Bold="true" class="notif"></asp:Label>
<form id="form1" runat="server" class="style1">
<div style="width:300px; background-color:#F0F0F0;">

Login


<table>
<tr>

<td>
<asp:Label ID="Label1" runat="server" Text="User Name "></asp:Label>
</td>
<td>
<asp:TextBox ID="txtUser" runat="server" Width="200px"></asp:TextBox>
</td>
</tr>
<tr>

12


Báo cáo BTL ASP.Net
<td>
<asp:Label ID="Label2" runat="server" Text="Password "></asp:Label>
</td>
<td>
TextMode="Password"></asp:TextBox>
</td>
</tr>
<tr>
<td>
 </td>
<td>

onclick="btnLogin_Click" Width="110px" Font-Names="Tahoma"
ForeColor="#515159"/>
</td>

</tr>
</table>
</div>
</form>
</body>
</html>



User_Login.aspx.cs

using
using
using
using
using

System;
System.Collections.Generic;
System.Web;
System.Web.UI;
System.Web.UI.WebControls;

public partial class User_Login : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
lblStatus.Text = "";
}
clsConnect cls = new clsConnect();

protected void btnLogin_Click(object sender, EventArgs e)
{
string strId = "";
bool kt = cls.IsLogin(txtUser.Text, txtPass.Text, ref strId
if (kt == true)
{
Session["Login"] = strId;
Response.Redirect("News_List.aspx");
}
else
{
lblStatus.Text = "Đăng nhập thất bại, kiểm tra thông tin tài khoản!";
}
}
}

13


Báo cáo BTL ASP.Net


News_List.aspx

<%@
Page
Language="C#"
Inherits="News_List" %>

AutoEventWireup="true"


CodeFile="News_List.aspx.cs"

html
PUBLIC
"-//W3C//DTD
XHTML
1.0
Transitional//EN"
" /><html xmlns=" /><head runat="server">
<title>News List</title>
</head>
<body background="images/ios-linen-light-gray.png">

News list


<form id="form1" runat="server">
<div style="margin-top:30px; margin-left:10px">
Width="100%" onrowcommand="grvNews_RowCommand">
<Columns>
<asp:TemplateField HeaderStyle-BackColor=LightGray>
<HeaderTemplate>
Mã tin</HeaderTemplate>
<ItemTemplate>
</asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderStyle-BackColor=LightGray>
<HeaderTemplate>

Tiêu đề</HeaderTemplate>
<ItemTemplate>
<%#Eval("sTitle") %></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderStyle-BackColor=LightGray>
<HeaderTemplate>
Ngày đăng</HeaderTemplate>
<ItemTemplate>
</asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderStyle-BackColor=LightGray>
<HeaderTemplate>
Số lần xem</HeaderTemplate>
<ItemTemplate>
</asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderStyle-BackColor=LightGray>
<HeaderTemplate>
Kiểm duyệt</HeaderTemplate>
<ItemTemplate>
</asp:Label>
</ItemTemplate>
</asp:TemplateField>


14


Báo cáo BTL ASP.Net
<asp:TemplateField HeaderStyle-BackColor=LightGray>
<HeaderTemplate>
Mã người dùng</HeaderTemplate>
<ItemTemplate>
</asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</form>
</body>
</html>



News_List.aspx.cs

using
using
using
using
using


System;
System.Collections.Generic;
System.Web;
System.Web.UI;
System.Web.UI.WebControls;

public partial class News_List : System.Web.UI.Page
{
clsConnect cls = new clsConnect();
protected void Page_Load(object sender, EventArgs e)
{
string strId = Session["Login"].ToString();
grvNews.DataSource = cls.GetNews(strId);
grvNews.DataBind();
}
protected void grvNews_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "selectNew")
{
cls.SetiViewTimes(e.CommandArgument.ToString());
Response.Redirect("News_Detail.aspx?IdNew=" + e.CommandArgument.ToString());
}
}
}



News_Detail.aspx

<%@

Page
Language="C#"
Inherits="News_Detail" %>

AutoEventWireup="true"

CodeFile="News_Detail.aspx.cs"

html
PUBLIC
"-//W3C//DTD
XHTML
" /><html xmlns=" /><head runat="server">
<title>News Detail</title>
</head>

15

1.0

Transitional//EN"


Báo cáo BTL ASP.Net
<body>
<form id="form1" runat="server">


<asp:Label ID="lblTitle" runat="server" Text="Label"></asp:Label>


<div>

<asp:Label ID="lblContent" runat="server" Text="Label"></asp:Label>
</div>
</form>
</body>
</html>



News_Detail.aspx.cs

using
using
using
using
using

System;
System.Collections.Generic;
System.Web;
System.Web.UI;
System.Web.UI.WebControls;

public partial class News_Detail : System.Web.UI.Page
{
clsConnect cls = new clsConnect();
protected void Page_Load(object sender, EventArgs e)
{
string idQuerystring=Request.QueryString["IdNew"].ToString();
string title = "";
string content = "";

cls.GetNew(idQuerystring, ref title, ref content);
lblTitle.Text = title;
lblContent.Text = content;
}
}



clsConnect.cs

using
using
using
using
using

System;
System.Collections.Generic;
System.Web;
System.Data.SqlClient;
System.Data;

public class clsConnect
{
SqlConnection _sqlcon;
string strString;
private void Connect()
{
strString = "Data Source=DUYTA-PC;Initial Catalog=TDDBaitaplon;Integrated Security=True";
_sqlcon = new SqlConnection(strString);

}

16


Báo cáo BTL ASP.Net
public bool IsLogin(string user, string pass, ref string id)
{
Connect();
bool kt = false;
DataTable tb = new DataTable();
SqlDataAdapter sqlda = new SqlDataAdapter("select * from tblUsers", _sqlcon);
sqlda.Fill(tb);
for (int i = 0; i < tb.Rows.Count; i++)
{
if (tb.Rows[i][1].ToString() == user && tb.Rows[i][2].ToString() == pass)
{
id = tb.Rows[i][0].ToString();
kt = true;
}
}
return kt;
}
public DataTable GetNews(string Id)
{
Connect();
DataTable tb = new DataTable();
SqlDataAdapter sqlda = new SqlDataAdapter("select * from tblNews where FK_iUserID='" + Id
+ "' order by tPostedDate", _sqlcon);
sqlda.Fill(tb);

return tb;
}
public void GetNew(string IdNew, ref string Title, ref string Content)
{
Connect();
Connect();
DataTable tb = new DataTable();
SqlDataAdapter sqlda = new SqlDataAdapter("select top 1 * from tblNews where
PK_iNewsID='" + IdNew + "'", _sqlcon);
sqlda.Fill(tb);
for (int i = 0; i < tb.Rows.Count; i++)
{
Title = tb.Rows[i][1].ToString();
Content = tb.Rows[i][3].ToString();
break;
}
}
public void SetiViewTimes(string IdNew)
{
Connect();
_sqlcon.Open();
DataTable tb = new DataTable();
SqlDataAdapter sqlda = new SqlDataAdapter("select top 1 * from tblNews where
PK_iNewsID='" + IdNew + "'", _sqlcon);
sqlda.Fill(tb);
int IdNews = 0;
for (int i = 0; i < tb.Rows.Count; i++)
{
IdNews = int.Parse(tb.Rows[i][5].ToString());
}


17


Báo cáo BTL ASP.Net
IdNews = IdNews + 1;
SqlCommand c = new SqlCommand("update tblNews set iViewTimes='" + IdNews.ToString() +
"' where PK_iNewsID='" + IdNew + "'", _sqlcon);
c.ExecuteNonQuery();
_sqlcon.Close();
}
}

18


Báo cáo BTL ASP.Net
III. KẾT LUẬN.
1. Kết quả tự đánh giá.
Với sự hướng dẫn giảng dạy và tự tìm hiểu trong giáo trình, em đã hoàn thành bài tập đúng
thời hạn. Trong quá trình thực hiện bài tập đã giúp em thu hoạch và củng cố lại các kiến thức đã học
.
a. Những kết quả đạt được của chương trình:
- đã hoàn thành bài tập và hiển thị thông tin theo đúng yêu cầu của đề bài.
- Nội dung xin được gửi kèm theo đĩa CD code của bài.
b. Hạn chế.
- Kinh nghiệm thực hiện chưa nhiều.
- Tuy đã thực hiện được hầu hết các yêu cầu, mục tiêu đề ra nhưng - chương trình vẫn chưa được tối
ưu, chưa thực sự chuyên nghiệp.
2.Kết luận

Sau thời gian tìm hiểu và nghiên cứu bài tập lớn. Em hoàn thành bài tập theo đề ra (Đề số
07). Nhưng do thời gian và kiến thức còn nhiều hạn chế nên không thể tránh khỏi những thiếu sót.
Kính mong thầy giáo đóng góp ý kiến giúp đỡ để em hoàn thiện hơn

Xin chân thành cảm ơn!

19



×