1. 2.2.1 Yều cầu của đơn vị
5.10. Trang quản trị
Đây là một phần quan trong nhất của website. Trang này cho phép người quản trị có thể thêm, sửa, xóa, các thông tim hoat động thông báo của nhà trường. Trang quản trị này chỉ có những người dược cấp tài khoản admin mới có thể truy cập vào hệ thống quản trị
Đây là giao diện đăng nhập, trước khi vào hệ thống Người sử dụng phải đăng nhập bằng tài khoản admin đã được cấp
Đây là giao diện trang admin sau khi đăng nhập thành công. Trang này có các chức năng cập nhât tin tức, menu, thông báo...
Giao diện trang đăng tin tức mới cho website
Giao diện trang quản lý ảnh quảng cáo trên website.
5.11 Các lớp, phương thức, và thủ tục lưu trữ
5.11.1 Để thiết kế các chức năng trong trang quản trị chúng em đã sử thủ tục lưu trữ (Stored Procedure) để quản lý thêm, sửa, xóa.Dưới đây là một số Stored Procedure chính mà chúng em sử dụng trong bài:
Stored Procedure quản lý cập nhật bản tin:
ALTER PROCEDURE CapNhat @mabantin int, @tieude nvarchar(255), @noidungtomtat ntext, @noidung ntext, @ngaydangtin datetime, @hinhanh nvarchar(255), @chuthichhinh nvarchar(255), @malinhvuc nvarchar(10) AS begin
update BANTIN set
tieude=@tieude, noidungtomtat=@noidungtomtat, noidung=@noidung, ngaydangtin=@ngaydangtin, hinhanh=@hinhanh, chuthichhinh=@chuthichhinh, malinhvuc=@malinhvuc where mabantin=@mabantin end
Stored Procedure quản lý thêm tin tức mới:
ALTER PROCEDURE ThemTinTuc @mabantin int, @tieude nvarchar(255), @noidungtomtat ntext, @noidung ntext, @ngaydangtin datetime, @hinhanh nvarchar(255), @chuthichhinh nvarchar(255), @malinhvuc nvarchar(10) AS begin
insert into BANTIN
values(@mabantin,@tieude,@noidungtomtat,@noidung,@ngaydangtin,@hinhanh,@chu thichhinh,@malinhvuc)
end
Stored Procedure quản lý xóa tin tức:
ALTER PROCEDURE Xoa @mabantin int AS
begin
delete from BANTIN where mabantin=@mabantin
end
5.11.2 Các lớp xử lý (Class)
Để xử lý thêm, sửa, xóa bài viết, ảnh quảng cáo, quản lý người dùng……sau khi đã có được các thủ tục lưu trữ, chúng em tiến hành viết các lớp xử lý lấy đối tượng từ Stored Procedure.Dưới đây là một số lớp xử lý (Class) chính:
Lớp xử lý kết nối Database, thực thi lệnh executenonquery, ExecuteScalar để trả về một giá trị
public class AccessData
{
private string ConnecString =
ConfigurationManager.ConnectionStrings["Data"].ConnectionString;
public SqlConnection GetConnect() {
return new SqlConnection(ConnecString); }
//Ham tra ve 1 datatable
public DataTable GetTable(string sql) {
SqlConnection con = GetConnect();
SqlDataAdapter ad = new SqlDataAdapter(sql,con);
DataTable dt = new DataTable();
con.Close(); return dt; }
//ham thuc thi lenh executenonquery
public void ExecuteNonquery(string sql) {
SqlConnection con = GetConnect();
con.Open();
SqlCommand cmd = new SqlCommand(sql,con);
cmd.ExecuteNonQuery(); con.Close();
cmd.Dispose(); }
//Ham thuc thi lenh ExecuteScalar de tra ve 1 gia tri
public string ExecuteScalar(string sql) {
SqlConnection con = GetConnect();
con.Open();
SqlCommand cmd = new SqlCommand(sql,con);
string kq = cmd.ExecuteScalar().ToString(); con.Close();
cmd.Dispose(); return kq; }
public SqlDataReader ExecuteReader(string sql) {
SqlConnection con = GetConnect();
con.Open();
SqlCommand cmd = new SqlCommand(sql,con);
SqlDataReader reader = cmd.ExecuteReader();
return reader; }
}
Lớp xử lý thêm, sửa, xóa dữ liệu trong database
public class BaiViet
{
//Khai bao cac thuoc tinh
public int mabantin { get; set; } public string tieude { get; set; }
public string noidungtomtat { get; set; } public string noidung { get; set; }
public string ngaydangtin { get; set; } public string hinhanh { get; set; } public string chuthichhinh { get; set; } public string malinhvuc { get; set; }
AccessData ac = new AccessData();
public void Insert(BaiViet bv) {
SqlConnection conn = ac.GetConnect(); conn.Open();
SqlCommand cmd = new SqlCommand("ThemTinTuc",conn);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Parameters.Add("@mabantin",System.Data.SqlDbType.Int).Value=bv.mabantin ;
cmd.Parameters.Add("@tieude", System.Data.SqlDbType.NVarChar).Value = bv.tieude;
cmd.Parameters.Add("@noidungtomtat",
System.Data.SqlDbType.NText).Value = bv.noidungtomtat;
cmd.Parameters.Add("@noidung", System.Data.SqlDbType.NText).Value = bv.noidung;
cmd.Parameters.Add("@ngaydangtin",
System.Data.SqlDbType.DateTime).Value = bv.ngaydangtin; cmd.Parameters.Add("@hinhanh",
System.Data.SqlDbType.NVarChar).Value = bv.hinhanh; cmd.Parameters.Add("@chuthichhinh",
System.Data.SqlDbType.NVarChar).Value = bv.chuthichhinh; cmd.Parameters.Add("@malinhvuc",
System.Data.SqlDbType.NVarChar).Value = bv.malinhvuc; cmd.ExecuteNonQuery();
cmd.Dispose(); conn.Close(); }
public void Update(BaiViet bv) {
SqlConnection conn = ac.GetConnect(); conn.Open();
SqlCommand cmd = new SqlCommand("CapNhat", conn);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Parameters.Add("@mabantin", System.Data.SqlDbType.Int).Value = bv.mabantin;
cmd.Parameters.Add("@tieude", System.Data.SqlDbType.NVarChar).Value = bv.tieude;
cmd.Parameters.Add("@noidungtomtat",
System.Data.SqlDbType.NText).Value = bv.noidungtomtat;
cmd.Parameters.Add("@noidung", System.Data.SqlDbType.NText).Value = bv.noidung;
cmd.Parameters.Add("@ngaydangtin",
System.Data.SqlDbType.DateTime).Value = bv.ngaydangtin; cmd.Parameters.Add("@hinhanh",
System.Data.SqlDbType.NVarChar).Value = bv.hinhanh; cmd.Parameters.Add("@chuthichhinh",
System.Data.SqlDbType.NVarChar).Value = bv.chuthichhinh; cmd.Parameters.Add("@malinhvuc",
System.Data.SqlDbType.NVarChar).Value = bv.malinhvuc; cmd.ExecuteNonQuery();
cmd.Dispose(); conn.Close(); }
public void Delete(BaiViet bv) {
SqlConnection conn = ac.GetConnect(); conn.Open();
SqlCommand cmd = new SqlCommand("Xoa", conn);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Parameters.Add("@mabantin", System.Data.SqlDbType.Int).Value = bv.mabantin; cmd.ExecuteNonQuery(); cmd.Dispose(); conn.Close(); } }
Sau khi đã tạo được các lớp xử lý, chúng em thiết kế các trang quản lý sử dụng các lớp (Class) vừa tạo:
Phương thức gọi lớp xử lý class: BaiViet bv = new BaiViet();
Hàm chọn dòng dữ liệu trên girdview đổ xuống textbox và xóa dữ liệu:
protected void GirdView1_RowCommand(object sender, GridViewCommandEventArgs
e) {
int index = int.Parse(e.CommandArgument.ToString()); if (e.CommandName == "Select")//Load du lieu len luoi
{
var ac = new AccessData();
SqlDataReader reader = ac.ExecuteReader(@"select
tieude,noidungtomtat,noidung,hinhanh,chuthichhinh,malinhvuc from BANTIN
where mabantin="+int.Parse(girdhienthi.Rows[index].Cells[0].Text)+"");
while (reader.Read()) { txttieude.Text = reader[0].ToString(); txtnoidungtomtat.Text = reader[1].ToString(); fcknoidung.Value= reader[2].ToString(); txtpath.Text = reader[3].ToString(); txtchuthich.Text = reader[4].ToString(); DropDownList1.SelectedValue = reader[5].ToString(); } reader.Close(); ViewState["mabantin"] = int.Parse(girdhienthi.Rows[index].Cells[0].Text); }
else if (e.CommandName == "del") {
BaiViet bv = new BaiViet();
bv.mabantin = int.Parse(girdhienthi.Rows[index].Cells[0].Text); bv.Delete(bv);
Response.Redirect("~/Admin/Quanlitintuc.aspx"); }
}
Hàm upload ảnh vào cơ sở dữ liệu:
protected void Button2_Click(object sender, EventArgs e) {
try
{
var bv = new BaiViet() {
mabantin = int.Parse(ViewState["mabantin"].ToString()), tieude=txttieude.Text,
noidungtomtat=txtnoidungtomtat.Text, noidung=fcknoidung.Value,
ngaydangtin=DateTime.Now.ToShortDateString(), hinhanh=txtpath.Text, chuthichhinh=txtchuthich.Text, malinhvuc=(DropDownList1.SelectedValue) }; bv.Update(bv); Response.Redirect("~/Admin/Quanlitintuc.aspx"); } catch (Exception) { throw;}}
KẾT LUẬN
Kết thúc bài tập lớn này,chúng em đã vận dụng được những kiến thức cơ bản mình đã học được trong thời gian qua.Chúng em đã vận dụng được các cách lập trình cơ bản của môn lập trình Win(C#) vào thiết kế Webform trên môi trường ASP.NET C# 3.5,như webform đăng nhập,phân quyền,tin tức… sử dụng code html để bố trí hình ảnh,banner,table…Và một số kiến thức em tự học được trong quá trình tìm kiếm để làm đồ án.
Tuy vậy, do thời gian làm bài tập lớn và kiến thức của em còn hạn chế nên những ý tưởng của em cho website như: “thiết kế các mục giải trí cho học sinh.Các mục trò chơi Toán học, đố vui nhằm nâng cao tư duy của học sinh”.vẫn chưa được hoàn thiện. Với kiến thức nền tảng đã được học ở trường, và những kiến thức tự học hỏi được trên Internet trong quá trình làm bài tập lớn, chúng em đã hoàn thành đề tài “Xây dựng Website tin tức cho trường THPT”. Mặc dù đã rất cố gắng và đầu tư rất nhiều nhưng do thời gian và kiến thức có hạn nên đề tài của chúng em không tránh khỏi được những thiếu sót. Chúng em rất mong nhận được sự thông cảm và góp ý của Thầy để chương trình ngày càng hoàn thiện hơn.
TÀI LIỆU THAM KHẢO
[1]: Trần Ngọc Anh, “ASP & Kỹ thuật lập trình Web”, Nhà xuất bản Trẻ, 2002.
[2]: Nguyễn Phương Lan, “Giáo trình tin học lý thuyết và bài tập ASP 3.5 ASP.NET ”, Nhà xuất bản Giáo dục, 2001.
[3]: “Những bài thực hành ASP”, Nhà xuất bản Thống Kê, 2002.
[4]: VN-GUIDE tổng hợp và biên dịch, “ASP cơ sở dữ liệu căn bản và chuyên sâu”, Nhà xuất bản Thống Kê, 2002.
[5]: Phạm Hữu Khang, “Lập trình ứng dụng chuyên nghiệp SQL Server 2000”, Nhà xuất bản Giáo dục, 2002.
[6]: Thạc Bình Cường, “Phân tích và thiết kế hệ thống thông tin”, Nhà xuất bản khoa học và kỹ thuật, 2002.
[7]: PGS- TS Nguyễn Văn Ba “Giáo Trình Phân Tích Thiết Kế Hệ Thống Thông Tin”. -Nhà Xuất Bản Đại Học Gia Hà Nội- 2003.
[8]: Lưu Bích Thủy “Tự Học ASP.NET Website “ Và một số trang web:
http://aspvn.net/
http://codeprojects.com/ http://diendandaihoc.com.vn/