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ự
Trang 1VIỆN ĐẠI HỌC MỞ HÀ NỘI
BÁO CÁO BÀI TẬP LỚN CÔNG NGHỆ DOTNET (ASP.NET)
ĐỀ SỐ 02
Giáo viên: LÊ HỮU DŨNG
SV thực hiện:
Lớp:
Trang 2Hà Nội, tháng 2
Trang 3Mục lục
Trang 4NHẬN XÉT CỦA GIÁO VIÊN
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Hà Nội, ngày… tháng…….năm 2013
Giáo viên giảng dạy
Trang 5I 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
Trang 6- 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
Trang 72 Yêu cầu bài tập:
a.Mục đích, yêu cầu của bài
Trong CSDL của một website, người ta dùng một số bảng sau:
Trong đó:
− tblKhachhang: lưu trữ thông tin về khach hàng
− tblHanghoa: lưu trữ thông tin về hàng hóa có trong cửa hàng
− tblHoadon: lưu trữ thông tin về các hóa đơn bán hàng
− Mỗi khách hàng có thể mua hàng nhiều lần, mỗi lần mua hàng sẽ có hóa đơn và có thể mua nhiều hàng hóa khách nhau mỗi hàng hóa lại có thể bán cho nhiều khách hàng khác nhau với giá bán khác nhau
Yêu cầu:
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 Hanghoa_nhap.aspx:
• Nhập mới thông tin vào bảng tblHanghoa
Trang 8b Hanghoa_Danhsach.aspx:
• Hiển thị danh sách các hàng hóa trong bảng tblHanghoas với các thông tin: Mã hàng, Tên hàng, Giá niêm yết, Đặc điểm, Xuất xứ, Số lượng đã bán được
c Sửa cột tên hàng thành cột liên kết để mỗi khi click vào Tên hàng nào thì xóa bản ghi tương ứng với hàng đó
b Yêu cầu khác.
- Không sử dụng các điểu khiển Datasource
Trang 9II PHÂN TÍCH HỆ THỐNG.
1 Yêu cầu chi tiết về CSDL:
Bảng tblHoadon với PK_iHoadonID là khóa chính:
Bảng tblKhachhang có PK_iKhachhangID là khóa chính, dữ liệu kiểu int
Bảng tblHanghoa có PK_iHanghoaID là khóa chính, dữ liệu kiểu int
Trang 10Bảng tblChitiethoadon có FK_iHoadonID và FK_iHanghoaID là khóa chính, kiểu dữ liệu int
2.Chức năng của bài tập.
a Mô tả các chức năng.
• Nhập mới thông tin danh sách hàng hóa:
• Màn hình hiển thị ra form nhập hàng hóa
• Cho phép người dùng nhập thông tin về hàng hóa, thông tin sẽ được lưu trữ vào bảng tblHanghoa
Trang 11• Hiển thị danh sách hàng hóa trong bảng tblHanghoa:
b Code của các chức năng:
<% @ Page Language ="C#" AutoEventWireup ="true" CodeBehind ="Hanghoa_nhap.aspx.cs"
Inherits ="Deso2.Hanghoa_nhap" %>
Trang 12<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
< html xmlns ="http://www.w3.org/1999/xhtml">
< head runat ="server">
< title ></ title >
</ head >
< body >
< form id ="form1" runat ="server">
< div >
< h2 > NHẬP HÀNG HÓA </ h2 >
Tên hàng hóa: < asp : TextBox runat ="server" ID ="txtTenhanghoa"
style =" margin-left : 4px" Width ="136px"></ asp : TextBox >
< br />
< br />
Giá niêm yết: < asp : TextBox runat ="server" ID ="txtGianiemyet"
style =" margin-left : 10px" Width ="137px"></ asp : TextBox >
< br />
< br />
Đặc điểm: < br />
< asp : TextBox runat ="server" ID ="txtDacdiem" TextMode ="MultiLine" Height ="63px"
style =" margin-left : 88px" Width ="159px"></ asp : TextBox >
< br />
< br />
Xuất xứ: < asp : TextBox runat ="server" ID ="txtXuatxu"
style =" margin-left : 36px" Width ="134px"></ asp : TextBox >
< br />
< br />
< asp : Button runat ="server" Text ="Nhập hàng" ID ="btnOK" onclick ="btnOK_Click" />
< asp : Button runat ="server" Text ="Hủy bỏ" ID ="btnHuy" onclick ="btnHuy_Click" />
Trang 13• Hanghoa_Nhap.aspx.cs:
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
namespace Deso2
{
public partial class Hanghoa_nhap : System.Web.UI Page
{
protected void Page_Load( object sender, EventArgs e)
{
}
protected void btnHuy_Click( object sender, EventArgs e)
{
txtDacdiem.Text = txtGianiemyet.Text = txtTenhanghoa.Text = txtXuatxu.Text = "" ;
}
protected void btnOK_Click( object sender, EventArgs e)
{
string connectionString=
ConfigurationManager ConnectionStrings[ "dbQlBanhang" ].ConnectionString;
//string sqlInsert = "insert into tblHanghoa values (N'"+txtTenhanghoa.Text+"',"+ Convert.ToDouble(txtGianiemyet.Text)+",N'"+txtDacdiem.Text+"',N'"+txtXuatxu.Text+"') ";
/* using (SqlConnection Cnn = new SqlConnection(connectionString))
{
using (SqlCommand Cmd = new SqlCommand(sqlInsert, Cnn))
{
Cmd.CommandType = CommandType.Text;
Cnn.Open();
Trang 14Cmd.ExecuteNonQuery();
Cnn.Close();
Response.Write("<script>alert('Nhập thành công');</script>");
}
} */
using ( SqlConnection Cnn = new SqlConnection (connectionString))
{
using ( SqlCommand Cmd = new SqlCommand ( "spHanghoa_Insert" , Cnn))
{
Cmd.CommandType = CommandType StoredProcedure;
Cmd.Parameters.AddWithValue( "@sTenhang" ,txtTenhanghoa.Text);
Cmd.Parameters.AddWithValue( "@fGianiemyet" ,
Convert ToDouble(txtGianiemyet.Text));
Cmd.Parameters.AddWithValue( "@sDacdiem" , txtDacdiem.Text);
Cmd.Parameters.AddWithValue( "@sXuatxu" ,txtXuatxu.Text);
Cnn.Open();
Cmd.ExecuteNonQuery();
Cnn.Close();
Response.Write( "<script>alert('Nhập thành công');</script>" );
}
}
}
}
}
• Hanghoa_Danhsach.aspx:
<% @ Page Language ="C#" AutoEventWireup ="true" CodeBehind ="Hanghoa_Danhsach.aspx.cs"
Inherits ="Deso2.Hanghoa_Danhsach" %>
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
< html xmlns ="http://www.w3.org/1999/xhtml">
< head runat ="server">
< title ></ title >
</ head >
Trang 15< asp : GridView runat ="server" ID ="grvHanghoa" AutoGenerateColumns ="false">
< Columns >
< asp : BoundField HeaderText ="Mã hàng" DataField ="PK_iHanghoaID" />
< asp : BoundField HeaderText ="Tên hàng hóa" DataField ="sTenhang" />
< asp : BoundField HeaderText ="Giá niêm yết" DataField ="fGianiemyet" />
< asp : BoundField HeaderText ="Đặc điểm" DataField ="sDacdiem" />
< asp : BoundField HeaderText ="Xuất xứ" DataField ="sXuatxu" />
< asp : BoundField HeaderText ="Số lượng bán" DataField ="Soluong" />
</ Columns >
</ asp : GridView >
</ form >
</ body >
</ html >
• Hanghoa_Danhsach.aspx.cs:
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
namespace Deso2
{
public partial class Hanghoa_Danhsach : System.Web.UI Page
{
protected void Page_Load( object sender, EventArgs e)
{
showHanghoa();
}
private void showHanghoa()
{
using ( DataTable tbl = getHanghoa())
{
grvHanghoa.DataSource = tbl;
grvHanghoa.DataBind();
Trang 16}
}
private DataTable getHanghoa()
{
string connectionString =
ConfigurationManager ConnectionStrings[ "dbQlBanhang" ].ConnectionString;
string sqlSelect = "select PK_iHanghoaID, sTenhang, fGianiemyet, sDacdiem, sXuatxu, SUM(iSoluong) as Soluong from tblHanghoa, tblChitiethoadon where FK_iHanghoaID = PK_iHanghoaID group by PK_iHanghoaID, sTenhang, fGianiemyet, sDacdiem, sXuatxu" ;
using ( SqlConnection Cnn = new SqlConnection (connectionString))
{
using ( SqlCommand Cmd = new SqlCommand (sqlSelect, Cnn))
{
Cmd.CommandType = CommandType Text;
using ( SqlDataAdapter da = new SqlDataAdapter (Cmd))
{
DataTable tbl = new DataTable ();
da.Fill(tbl);
return tbl;
}
}
}
}
}
}
III KẾT LUẬN.
1 Kết quả tự đánh giá.
Với sự hướng dẫn giảng dạy từ giáo viên và tự tìm hiểu trong giáo trình, em đã cố gắng hoàn thành 2/3 bài tập 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:
Trang 17- 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 đã cố gắng làm tốt những yêu cầu mà
đề bài đề ra 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
Sinh Viên
Nguyễn Công Sơn Ngọc