37 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG CAO ĐẲNG KINH TẾ CÔNG NGHỆ TP HỒ CHÍ MINH ĐỀ TÀI THỰC TẬP TỐT NGHIỆP THIẾT KẾ WEBSITE BÁN SÁCH TRỰC TUYẾN Giảng viên hướng dẫn Th s Sinh viên thực hiện Lớp Ngành Công nghệ thông tin Chuyên ngành Công nghệ phần mềm TP Hồ Chí Minh, tháng 6 năm 20 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG CAO ĐẲNG KINH TẾ CÔNG NGHỆ TP HỒ CHÍ MINH ĐỀ TÀI THỰC TẬP TỐT NGHIỆP THIẾT KẾ WEBSITE BÁN SÁCH TRỰC TUYẾN Giảng viên hướng dẫn Th s Sinh viên thực hiện Lớp Ngành Công nghệ thông tin Chuyên ngà.
Văn phòng
Địa chỉ: 276/31/121 Thống Nhất, P.16,Quận Gò Vấp, TP Hồ Chí Minh Đại diện pháp luật: Bùi Thị Ngọc
Các lĩnh vực hoạt động chính
Kinh doanh các thiết bị tin học
Các thiết tin học cho trường học, doanh nghiệp
Hệ thống tổng đài Asus, Dell
Hệ thống camera quan sát
Các thiết bị máy tính như chuột bàn phím
Cung cấp các giải pháp và dịch vụ
Hỗ trợ kỹ thuật cho khách hàng
Tin học Phương Đông cam kết hỗ trợ khách hàng một cách toàn diện và chu đáo, từ việc giao hàng đầy đủ, kịp thời, đúng hẹn đến thực hiện bảo hành và bảo trì nhanh chóng với chất lượng cao và giá thành hợp lý.
Giải pháp truyền thông hội tụ tốt nhất dành cho doanh nghiệp
Tầm nhìn, sứ mệnh và mục tiêu của tin học Phương Đông
Tầm nhìn
Trở thành nhà cung cấp hàng đầu các sản phẩm, dịch vụ công nghệ và là người bạn đồng hành đáng tin cậy của khách hàng.
Sứ mệnh
Sứ mệnh của chúng tôi là kết nối những giá trị tốt nhất từ các ứng dụng và tiện ích hiện đại đến tay khách hàng, nhằm giải quyết hiệu quả các vấn đề trong lĩnh vực công nghệ và tin học.
Quá trình thực tập ở công ty
Giới thiệu về công ty
Sinh viên thực tập tại tin học Phương Đông sẽ nhận được sự hướng dẫn chi tiết từ các nhân viên về công việc của công ty, các bộ phận làm việc và nội quy công ty Việc hướng dẫn này giúp sinh viên hiểu rõ hơn về môi trường làm việc và nhiệm vụ hỗ trợ công ty hiệu quả.
Lắng nghe và quan sát các nhân viên bộ phận làm việc
Trong quá trình thực tập tại công ty, thực tập sinh sẽ được nhân viên hướng dẫn và giải thích công việc một cách dễ hiểu Ban đầu, họ sẽ quan sát quy trình làm việc liên quan đến phần cứng, bao gồm cách lắp ráp máy tính, sửa chữa các thiết bị như Ram, và thực hiện việc vệ sinh máy.
Thứ hai thực tập viên sẽ được tiếp xúc với phần mềm, các ứng dụng hộ trợ cũng như thiết kế trang wed cho các doanh nghiệp
Thực hành sửa chửa các thiết bị máy tính
Sinh viên thực tập sẽ nhận được sự hướng dẫn và quan sát từ các nhân viên trong quá trình thực tập Họ sẽ có cơ hội tiếp xúc và sửa chữa những lỗi đơn giản của máy tính, giúp nâng cao kỹ năng thực tế và hiểu biết về công việc.
Khi máy tính gặp lỗi hệ điều hành Windows, chúng tôi sẽ tiến hành cài đặt lại Windows theo yêu cầu của khách hàng, đồng thời sử dụng phần mềm diệt virus để loại bỏ mối đe dọa Ngoài ra, chúng tôi cũng sẽ thay thế các linh kiện cũ bằng linh kiện mới để đảm bảo hiệu suất hoạt động tốt nhất cho máy tính.
Cài đặt các ứng dụng cho máy tính như Microsoft Word,… các phần mềm diệt viruss như Brav pro.
Lỗi cổng mạng không kết nối.
Đến các đơn vị thực tập quan sát
Công ty tin học Phương Đông đã thiết lập mối liên kết chặt chẽ với nhiều doanh nghiệp tại TP HCM, tạo điều kiện cho sinh viên thực tập tham gia khảo sát thực tế các hệ thống máy tính của các công ty Tại đây, sinh viên có cơ hội quan sát quy trình làm việc của nhân viên, trải nghiệm hiệu suất cao của các máy tính, tìm hiểu về hệ thống mạng LAN, cũng như thực hành sửa chữa các lỗi thường gặp của máy tính.
Mục tiêu
Để giúp việc giới thiệu sách trở nên dễ dàng, tiếp cận với nhiều khách hàng hơn, chúng em đã thiết kế website với mục tiêu:
Website vận hành đơn giản, dễ sử dụng.
Tổ chức quản lý, lưu trữ trên hệ thống máy vi tính làm tăng tính an toàn
Giao diện trực quan bằng tiếng Việt, các form nhập liệu đơn giản, dễ thao tác
Chức năng
Chức năng quản lý sách
- Thêm, xóa, sửa thông tin sách.
Chức năng quản lý tài khoản
- Thêm, xóa, sửa tài khoản đăng nhập.
Chức năng thêm giỏ hàng
- Thêm sản phẩm vào giỏ hàng cần mua.
Công nghệ sử dụng
APS.NET
ASP.Net là nền tảng phát triển web do Microsoft phát hành lần đầu vào năm 2002, được sử dụng để xây dựng các ứng dụng dựa trên web.
Phiên bản ASP.Net đầu tiên là 1.0, trong khi phiên bản mới nhất hiện nay là 4.6 ASP.Net được phát triển để tương thích với giao thức HTTP, là tiêu chuẩn được sử dụng cho tất cả các ứng dụng web.
ASP viết đầy đủ là Active Server Pages, và NET là viết tắt của Network EnabledTechnologies.
Ngôn ngữ C#
C# (C sharp) là một ngôn ngữ lập trình dễ sử dụng, được phát triển bởi đội ngũ kỹ sư của Microsoft vào năm 2000, với sự lãnh đạo của Anders Hejlsberg và Scott Wiltamuth.
C# là ngôn ngữ lập trình hiện đại, hướng đối tượng và 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.
C# được phát triển cho Common Language Infrastructure (CLI), bao gồm mã thực thi và môi trường runtime, cho phép sử dụng nhiều ngôn ngữ lập trình cấp cao trên các nền tảng và kiến trúc máy tính đa dạng.
C# với sự hỗ trợ mạnh mẽ của NET Framework giúp cho việc tạo một ứng dụng Windows Forms hay WPF (Windows Presentation Foundation), trở nên rất dễ dàng.
Công cụ sử dụng
Visual Studio
Visual Studio là công cụ lập trình nổi tiếng của Microsoft, chưa có phần mềm nào thay thế được Được phát triển bằng hai ngôn ngữ C# và VB+, Visual Studio giúp người dùng lập trình hệ thống một cách dễ dàng và nhanh chóng.
Visual Studio, phần mềm lập trình hệ thống do Microsoft phát triển, đã trải qua nhiều phiên bản khác nhau kể từ khi ra mắt Sự đa dạng này cho phép người dùng chọn lựa phiên bản phù hợp với dòng máy và cấu hình của mình, đảm bảo hiệu suất tối ưu trong quá trình lập trình.
Bên cạnh đó, Visual Studio còn cho phép người dùng có thể tự chọn lựa giao diện chính cho máy của mình tùy thuộc vào nhu cầu sử dụng.
Microsoft SQL Server
Phần mềm được Microsoft phát triển dựa trên RDBMS.
Cũng là một ORDBMS (Hệ quản trị cơ sở dữ liệu quan hệ đối tượng).
Một nền tảng độc lập.
Phần mềm sử dụng cả giao diện dòng lệnh và giao diện GUI.
Hỗ trợ ngôn ngữ SQL (trước đây là SEQUEL - ngôn ngữ truy vấn tiếng Anh có cấu trúc) - vốn là sản phẩm của IBM.
NỘI DUNG ĐỀ TÀI
Sơ đồ lớp (Class Diagram)
Mô hình quan hệ
Hình 2: Mô hình quan hệ
Mô tả các bảng
2.Thiết kế cơ sở dữ liệu
3.1 Sơ đồ tổng quan các chức năng
Hình 3: Phân tích chức năng.
Giải thích hoạt động sơ đồ phân cấp chức năng:
Chức năng cập nhật sản phẩm dành cho admin là yếu tố quan trọng trong sự phát triển của website giới thiệu Việc thường xuyên cập nhật sản phẩm không chỉ giúp website ngày càng phát triển mà còn thu hút sự chú ý của khách hàng nhờ vào sự đa dạng và phong phú của các sản phẩm mới.
Sự sắp xếp thông tin và sản phẩm trên website có ảnh hưởng lớn đến doanh thu Một giao diện đẹp mắt không chỉ thu hút người dùng mà còn tăng cường trải nghiệm của họ, từ đó gia tăng lượng truy cập và khả năng chuyển đổi.
Hình 4: Sơ đồ Use case.
3.3 Chức năng quản lý sách using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; public partial class QuanLySach : System.Web.UI.Page
DataTable dt = new DataTable(); dt = kn.laybang("select * from Sach order by MaSach desc");
DataTable dt = new DataTable(); dt = kn.laybang("select * from Sach order by MaSach desc");
GridView1.DataBind(); txtMaSach.Text = dt.Rows[0]["MaSach"].ToString(); // Dòng đầu tiên trong bảng Sách được chọn; MaSach là cột được chọn txtTenSach.Text = dt.Rows[0]["TenSach"].ToString(); txtTacGia.Text = dt.Rows[0]["TacGia"].ToString(); txtGia.Text = dt.Rows[0]["Gia"].ToString(); txtSoLuong.Text = dt.Rows[0]["SoLuong"].ToString(); txtMoTa.Text = dt.Rows[0]["MoTa"].ToString();
//Hiê? n thị a ?nh cu ?a sách tương ứng ra điê= u khiê? n Image imgSach.ImageUrl = "~/Images/" + dt.Rows[0]["Ten-
//Hiê? n thị tên file a ?nh sách từ csdl vào trong hộp văn ba ?n txtTen- FileAnh txtTenFileAnh.Text = dt.Rows[0]["TenFileAnh"].ToString(); txtMaLoai.Text = dt.Rows[0]["MaLoai"].ToString();
Sau khi hiển thị lên hộp văn bản, các trường thông tin như mã sách, tên sách, tác giả, giá, số lượng, mô tả, tên file ảnh và mã loại sẽ bị vô hiệu hóa, không cho phép người dùng chỉnh sửa Cụ thể, các thuộc tính Enabled của các ô nhập liệu được đặt thành false.
//Vô hiệu hóa nút Upload a ?nh và điê= u khiê? n chọn a ?nh FileUpload1 btnUploadAnh.Enabled = false;
} protected void Page_Load(object sender, EventArgs e)
{ if (!IsPostBack) //có IsPostBack thì khi chọn một mục trên GridView và bầZ m nút "Sư? a" thì mới có tác dụng sư? a cho mục được chọn đó { laybangchogridview();
//Không hiê? n thị một sôZ nút sau
//lblThongBao.Text = ""; lblThongBao.Visible = false; cmdCo.Visible = false; cmdKhong.Visible = false;
//không cho phép chọn một sôZ nút cmdGhi.Enabled = false; cmdKhongGhi.Enabled = false;
//Luôn cho hộp văn ba ?n mã sách không được chọn txtMaSach.Enabled = false;
//MuôZ n khi chạy ứng dụng, hàng đầ= u tiên trong ba ?ng Sach được ta ?i lên các TextBox: txtMaSach, txtTenSach, thì viêZ t như sau:
// ViewState["flag"] = false; nghĩa là nút "Sư? a" đang được nhầZ n
} protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{ imgSach.Visible = true; int dong = GridView1.SelectedIndex; //Khai báo dòng ketnoi kn = new ketnoi();
To retrieve and display book information from a database, a DataTable is created and populated with the results of a SQL query that selects all records from the "Sach" table, ordered by "MaSach" in descending order The selected row's values are then assigned to various text fields: "txtMaSach" captures the book's ID, "txtTenSach" retrieves the book's title, "txtTacGia" extracts the author's name, "txtGia" displays the price, "txtSoLuong" indicates the quantity available, and "txtMoTa" provides a description of the book.
//Hiê? n thị a ?nh cu ?a sách tương ứng ra điê= u khiê? n Image imgSach.ImageUrl = "~/Images/" + dt.Rows[dong][6].ToString();
Để hiển thị tên file ảnh từ cơ sở dữ liệu vào hộp văn bản, sử dụng mã lệnh: `txtTenFileAnh.Text = dt.Rows[dong][6].ToString();` và `txtMaLoai.Text = dt.Rows[dong][7].ToString();` Đảm bảo rằng hộp văn bản tên file ảnh (`txtTenFileAnh`) và nhãn danh sách ảnh (`lblAnhSach`) đều được hiển thị bằng cách thiết lập thuộc tính `Visible` của chúng thành `true`.
Sau khi hiển thị lên hộp văn bản, các trường thông tin như mã sách, tên sách, tác giả, giá, số lượng, mô tả, tên file ảnh và mã loại sẽ không được phép chỉnh sửa, cụ thể là các thuộc tính txtMaSach.Enabled, txtTenSach.Enabled, txtTacGia.Enabled, txtGia.Enabled, txtSoLuong.Enabled, txtMoTa.Enabled, txtTenFileAnh.Enabled và txtMaLoai.Enabled đều được đặt thành false.
//Cho phép các nút sau hoạt động cmdThem.Enabled = true; cmdXoa.Enabled = true; cmdSua.Enabled = true;
//Vô hiệu hóa một sôZ nút sau cmdGhi.Enabled = false; cmdKhongGhi.Enabled = false;
//Không Cho phép nút Upload a ?nh và điê= u khiê? n chọn a ?nh FileUpload1 được hoạt động btnUploadAnh.Enabled = false;
} protected void btnUploadAnh_Click(object sender, EventArgs e)
//Tách lầZ y tên tập tin
//Thực hiện chép file a ?nh lầZ y được lên thư mục Images nằm trong ứng dụng Website
FileUpload1.SaveAs(MapPath("~/Images/" + TenFileAnhLayDuoc));
//Đưa tên a ?nh lầZ y được ra điê= u khiê? n Image đê? hiê? n thị a ?nh imgSach.ImageUrl = "~/Images/" + TenFileAnhLayDuoc;
//Đưa tên a ?nh lầZ y được vào hộp văn ba ?n txtTenFileAnh đê? hiê? n thị tên file a ?nh lầZ y được vào hộp văn ba ?n này txtTenFileAnh.Text = TenFileAnhLayDuoc;
} protected void cmdThem_Click(object sender, EventArgs e)
Lệnh cho phép nhập dữ liệu vào các hộp văn bản trong GridView đã bị vô hiệu hóa Bằng cách thiết lập các thuộc tính Enabled của các hộp văn bản như txtTenSach, txtTacGia, txtGia, txtSoLuong, txtMoTa, txtTenFileAnh và txtMaLoai thành true, người dùng có thể nhập lại thông tin một cách dễ dàng.
//Cho phép nút Upload a ?nh và điê= u khiê? n chọn a ?nh FileUpload1 được hoạt động btnUploadAnh.Enabled = true;
Để làm sạch các trường thông tin trong hộp văn bản, bạn cần thiết lập giá trị cho các biến như txtMaSach, txtTenSach, txtTacGia, txtGia, txtSoLuong, txtMoTa, txtTenFileAnh, và txtMaLoai thành chuỗi rỗng Đồng thời, hãy đảm bảo rằng imgSach.ImageUrl cũng được đặt thành chuỗi rỗng Cuối cùng, hãy đặt tiêu điểm vào trường txtTenSach để người dùng có thể nhập thông tin ngay lập tức.
//Cho phép chọn một sôZ nút cmdGhi.Enabled = true; cmdKhongGhi.Enabled = true;
//Vô hiệu hóa một sôZ nút sau cmdThem.Enabled = false; cmdXoa.Enabled = false; cmdSua.Enabled = false;
Nút "Thêm" được sử dụng để ghi (insert) dữ liệu vào cơ sở dữ liệu, trong khi nút "Sửa" dùng để cập nhật (update) thông tin đã có Do đó, cần phân biệt rõ ràng khi nào nhấn nút "Thêm" và khi nào nhấn nút "Sửa" để đảm bảo quản lý dữ liệu chính xác.
// ViewState["flag"] = true; nghĩa là nút "Thêm" đang được nhầZ n ViewState["flag"] = true;
} protected void cmdXoa_Click(object sender, EventArgs e)
{ lblThongBao.Visible = true; lblThongBao.Text = "Bạn có muôZ n xóa không?"; cmdCo.Visible = true; cmdKhong.Visible = true;
} protected void cmdCo_Click(object sender, EventArgs e)
{ ketnoi kn = new ketnoi(); int kq = kn.xulydulieu("Delete Sach where MaSach='" + txtMaSach.- Text + "'"); if (kq > 0)
{ lblThongBao.Visible = true; lblThongBao.Text = "Bạn đã xóa thành công!"; laybangchogridview(); cmdCo.Visible = false; cmdKhong.Visible = false;
//MuôZ n khi chạy ứng dụng, hàng đầ= u tiên trong ba ?ng Sach được ta ?i lên các TextBox: txtMaSach, txtTenSach, thì viêZ t như sau:
} protected void cmdKhong_Click(object sender, EventArgs e)
{ lblThongBao.Visible = false; cmdCo.Visible = false; cmdKhong.Visible = false;
} protected void cmdSua_Click(object sender, EventArgs e)
//nút sư? a có lệnh như nút thêm nhưng không có xóa rôn ng các hộp văn ba ?n txtMaSach.Enabled = false;
Để cho phép nhập dữ liệu vào các hộp văn bản trong GridView đã bị vô hiệu hóa, bạn cần thiết lập thuộc tính Enabled của các trường nhập liệu như sau: txtTenSach.Enabled = true; txtTacGia.Enabled = true; txtGia.Enabled = true; txtSoLuong.Enabled = true; txtMoTa.Enabled = true; txtTenFileAnh.Enabled = true; txtMaLoai.Enabled = true.
//Cho phép nút Upload a ?nh và điê= u khiê? n chọn a ?nh FileUpload1 được hoạt động btnUploadAnh.Enabled = true;
FileUpload1.Enabled = true; txtTenSach.Focus();
//Cho phép chọn một sôZ nút cmdGhi.Enabled = true; cmdKhongGhi.Enabled = true;
//Vô hiệu hóa một sôZ nút sau cmdThem.Enabled = false; cmdXoa.Enabled = false; cmdSua.Enabled = false;
Nút "Thêm" sẽ thực hiện chức năng ghi (insert) dữ liệu vào cơ sở dữ liệu khi bạn nhấn nút "Ghi" Ngược lại, nút "Sửa" sẽ cập nhật (update) dữ liệu hiện có khi nhấn nút "Ghi" Do đó, cần phân biệt rõ ràng khi nào nên nhấn nút "Thêm" và khi nào nên nhấn nút "Sửa".
// ViewState["flag"] = false; nghĩa là nút "Sư? a" đang được nhầZ n ViewState["flag"] = false;
{ ketnoi kn = new ketnoi(); int kq = kn.xulydulieu("Update Sach set TenSach=N'" + txtTenSach.- Text + "',TacGia=N'" + txtTacGia.Text + "',Gia='" + txtGia.Text +
"',SoLuong='" + txtSoLuong.Text + "',MoTa=N'" + txtMoTa.Text + "',Ten- FileAnh=N'" + txtTenFileAnh.Text + "',MaLoai='" + txtMaLoai.Text + "' where MaSach='" + txtMaSach.Text + "'"); if (kq > 0)
{ lblThongBao.Visible = true; lblThongBao.Text = "Bạn đã sư? a thành công!"; laybangchogridview();
{ lblThongBao.Visible = true; lblThongBao.Text = "Bạn đã sư? a không thành công!";
To insert a new book record into the database, the code initializes a connection and executes an SQL query The query includes fields such as book title, author, price, quantity, description, image file name, and category ID, using values obtained from text inputs.
{ lblThongBao.Visible = true; lblThongBao.Text = "Bạn đã thêm thành công!"; laybangchogridview();
{ lblThongBao.Visible = true; lblThongBao.Text = "Bạn đã thêm không thành công!";
} protected void cmdGhi_Click(object sender, EventArgs e)
{ if ((bool)ViewState["flag"] == true)
//Vô hiệu hóa một sôZ nút sau cmdGhi.Enabled = false; cmdKhongGhi.Enabled = false;
//Cho phép các nút sau hoạt động cmdThem.Enabled = true; cmdXoa.Enabled = true; cmdSua.Enabled = true;
//Vô hiệu hóa một sôZ nút sau cmdGhi.Enabled = false; cmdKhongGhi.Enabled = false;
//Cho phép các nút sau hoạt động cmdThem.Enabled = true; cmdXoa.Enabled = true; cmdSua.Enabled = true;
} protected void cmdKhongGhi_Click(object sender, EventArgs e) { lblThongBao.Visible = true; lblThongBao.Text = "Đã hu ?y!"; cmdThem.Enabled = true; cmdXoa.Enabled = true; cmdSua.Enabled = true; cmdGhi.Enabled = false; cmdKhongGhi.Enabled = false;
Chức năng quản lý người dùng
The code snippet provided is a C# ASP.NET web page class named "QuanLyNguoiDung," which is part of a larger system It utilizes various namespaces, including System, System.Collections.Generic, System.Linq, System.Web, System.Web.UI, System.Web.UI.WebControls, and System.Data, indicating its functionality involves web user interface components and data management.
DataTable dt = new DataTable(); dt = kn.laybang("select * from NguoiDung");
DataTable dt = new DataTable(); dt = kn.laybang("select * from NguoiDung"); txtID.Text = dt.Rows[0]["ID"].ToString(); txtTenDangNhap.Text = dt.Rows[0]["TenDangNhap"].ToString(); txtMatKhau.Text = dt.Rows[0]["MatKhau"].ToString();
//Sau khi hiê? n thị không cho chọn vào hộp văn ba ?n txtID.Enabled = false; txtTenDangNhap.Enabled = false; txtMatKhau.Enabled = false;
} protected void Page_Load(object sender, EventArgs e)
//không cho phép chọn một sôZ nút cmdGhi.Enabled = false; cmdKhongGhi.Enabled = false;
//Không hiê? n thị một sôZ nút sau lblThongBao.Text = ""; cmdCo.Visible = false; cmdKhong.Visible = false;
} protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
//LầZ y giá trị dong được chọn trên GridView int dong = GridView1.SelectedIndex; ketnoi kn = new ketnoi();
DataTable dt = new DataTable(); dt = kn.laybang("select * from NguoiDung"); txtID.Text = dt.Rows[dong][0].ToString(); txtTenDangNhap.Text = dt.Rows[dong][1].ToString(); txtMatKhau.Text = dt.Rows[dong][2].ToString();
} protected void cmdThem_Click(object sender, EventArgs e)
//Trường khóa chính luôn vô hiệu hóa txtID.Enabled = false;
//Cho phép nhập dữ liệu vào các hộp văn ba ?n (ơ ? GridView đã vô hiệu hóa nhập, lệnh này cho phép nhập trơ ? lại) txtTenDangNhap.Enabled = true; txtMatKhau.Enabled = true;
//Cho giá trị trong các hộp văn ba ?n là rôn ng txtID.Text = ""; txtTenDangNhap.Text = ""; txtMatKhau.Text = ""; txtTenDangNhap.Focus();
//Cho phép chọn một sôZ nút cmdGhi.Enabled = true; cmdKhongGhi.Enabled = true;
//Vô hiệu hóa một sôZ nút sau cmdThem.Enabled = false; cmdXoa.Enabled = false; cmdSua.Enabled = false;
Nút "Thêm" và nút "Sửa" có vai trò quan trọng trong việc quản lý dữ liệu Khi nhấn nút "Thêm", dữ liệu sẽ được ghi (insert) vào cơ sở dữ liệu, trong khi nhấn nút "Sửa" sẽ cập nhật (update) thông tin đã có Do đó, người dùng cần phân biệt rõ ràng khi nào nên nhấn nút "Thêm" và khi nào nên nhấn nút "Sửa" để đảm bảo tính chính xác của dữ liệu.
// ViewState["flag"] = true; nghĩa là nút "Thêm" đang được nhầZ n ViewState["flag"] = true;
} protected void cmdXoa_Click(object sender, EventArgs e)
{ lblThongBao.Visible = true; lblThongBao.Text = "Bạn có muôZ n xóa không?"; cmdCo.Visible = true; cmdKhong.Visible = true;
} protected void cmdCo_Click(object sender, EventArgs e)
{ ketnoi kn = new ketnoi(); int kq = kn.xulydulieu("delete NguoiDung where ID='" + txtID.Text + "'"); if (kq > 0)
{ lblThongBao.Visible = true; lblThongBao.Text = "Bạn đã xóa thành công!"; laybangchogridview(); cmdCo.Visible = false; cmdKhong.Visible = false;
} protected void cmdKhong_Click(object sender, EventArgs e)
{ lblThongBao.Visible = false; cmdCo.Visible = false; cmdKhong.Visible = false;
} protected void cmdSua_Click(object sender, EventArgs e)
//Trường khóa chính luôn vô hiệu hóa txtID.Enabled = false;
//Cho phép nhập dữ liệu vào các hộp văn ba ?n (ơ ? GridView đã vô hiệu hóa nhập, lệnh này cho phép nhập trơ ? lại) txtTenDangNhap.Enabled = true; txtMatKhau.Enabled = true;
//Cho phép chọn một sôZ nút cmdGhi.Enabled = true; cmdKhongGhi.Enabled = true;
//Vô hiệu hóa một sôZ nút sau cmdThem.Enabled = false; cmdXoa.Enabled = false; cmdSua.Enabled = false;
//Nút "Thêm": khi nhầZ n nút "Ghi" nó sẽ ghi (insert) vào cơ sơ ? dữ liệu
Khi nhấn nút "Sửa", dữ liệu sẽ được cập nhật Do đó, cần phân biệt rõ ràng thời điểm nhấn nút "Thêm" và nút "Sửa" để thực hiện các thao tác đúng cách.
// ViewState["flag"] = false; nghĩa là nút "Sư? a" đang được nhầZ n ViewState["flag"] = false;
{ ketnoi kn = new ketnoi(); int kq = kn.xulydulieu("Update NguoiDung set TenDangNhap=N'" + txtTenDangNhap.Text + "',MatKhau=N'" + txtMatKhau.Text + "' where ID='" + txtID.Text + "'"); if (kq > 0)
{ lblThongBao.Visible = true; lblThongBao.Text = "Bạn đã sư? a thành công!"; laybangchogridview();
{ lblThongBao.Visible = true; lblThongBao.Text = "Bạn đã sư? a không thành công!";
{ ketnoi kn = new ketnoi(); int kq = kn.xulydulieu("Insert into
NguoiDung(TenDangNhap,MatKhau) Values(N'" + txtTenDangNhap.Text + "',N'"
{ lblThongBao.Visible = true; lblThongBao.Text = "Bạn đã thêm thành công!"; laybangchogridview();
{ lblThongBao.Visible = true; lblThongBao.Text = "Bạn đã thêm không thành công!";
} protected void cmdGhi_Click(object sender, EventArgs e)
{ if ((bool)ViewState["flag"] == true)
//Vô hiệu hóa một sôZ nút sau cmdGhi.Enabled = false; cmdKhongGhi.Enabled = false;
//Cho phép các nút sau hoạt động cmdThem.Enabled = true; cmdXoa.Enabled = true; cmdSua.Enabled = true;
//Vô hiệu hóa một sôZ nút sau cmdGhi.Enabled = false; cmdKhongGhi.Enabled = false;
//Cho phép các nút sau hoạt động cmdThem.Enabled = true; cmdXoa.Enabled = true; cmdSua.Enabled = true;
} protected void cmdKhongGhi_Click(object sender, EventArgs e)
{ lblThongBao.Visible = true; lblThongBao.Text = "Đã hu ?y!";
//Cho phép các nút sau hoạt động cmdThem.Enabled = true; cmdXoa.Enabled = true; cmdSua.Enabled = true;
//Vô hiệu hóa một sôZ nút sau cmdGhi.Enabled = false; cmdKhongGhi.Enabled = false;
4.Website giới thiệu sách online
Trang chủ
Trang chủ là điểm khởi đầu mà người dùng gặp khi truy cập vào website, nơi họ có thể khám phá các thể loại sách đa dạng mà trang web cung cấp.
Trang thể loại
Hình 6: Thể loại tiểu thuyết.
Hình 7: Thể loại tin học.
Hình 8: Thể loại kinh tế.
Trang giới thiệu
- Trang này cung cấp thông tin tổng quan về website.
Trang đăng nhập
- Trang đăng nhập dành cho quản trị viên, đăng nhập để sử dụng các chức năng trong website.
Trang quản trị
- Trang quản trị dành cho quản trị viên.
Trang quản lý sách
- Trang này cho phép quản trị viên thêm sách mới bằng cách nhấn nút
Để thêm sách mới, bạn nhấn "Thêm", sau đó chọn các thuộc tính cần thiết cho sách Tiếp theo, chọn hình đại diện bằng cách nhấn nút "Browse" và sau đó nhấn "Upload ảnh" Khi đã điền đầy đủ thông tin, bạn nhấn nút "Ghi" để lưu lại Nếu muốn hủy bỏ, hãy chọn "Không ghi".
Hình 12: Trang quản lý sách – chức năng thêm.
- Trang này cho phép quản trị viên xóa sách đang có trong website bằng cách nhấn nút ”Chọn” vào mã sách của sách muốn xóa, rồi nhấn nút
“Xóa”, sau đó ta nhấn nút “Ghi”, muốn hủy bỏ chọn ”Không ghi”.
Hình 13: Trang quản lý sách – chức năng xóa.
- Trang này cho phép quản trị viên sửa sách đang có trong website bằng cách nhấn nút ”Chọn” vào mã sách cũa sách muốn sửa, rồi nhấn nút
“Sửa”, sau đó ta sửa các thuộc tính ta muốn sửa, cuối cùng ta nhấn nút
“Ghi”, muốn hủy bỏ chọn “Không ghi”.
Hình 14: Trang quản lý sách – chức năng thêm.
Trang quản lý tài khoản
- Trang này cho phép quản trị viên thêm tài khoản bằng cách nhấn nút
”Thêm”, rồi nhập “Tên người dùng” và “Mật khẩu” sau đó ta nhấn nút
“Ghi” để hoàn thành., muốn hủy bỏ chọn “Không ghi”.
- Trang này cho phép quản trị viên xóa tài khoản bằng cách nhấn nút
“Chọn” vào ID tài khoản muốn xóa, rồi nhấn nút “Xóa”, sau đó nhấn nút
“Ghi” để hoàn thành việc xóa, muốn hủy bỏ chọn “Không ghi”.
- Trang này cho phép quản trị viên sửa tài khoản bằng cách nhấn nút
Để sửa đổi thông tin tài khoản, hãy chọn ID tài khoản cần chỉnh sửa và nhấn nút “Sửa” Sau khi thực hiện các chỉnh sửa cần thiết, hãy nhấn nút “Ghi” để lưu lại thay đổi Nếu bạn muốn hủy bỏ thao tác, chỉ cần chọn “Không ghi”.
Hình 15: Trang quản lý tài khoản.
Đăng xuất
- Ta nhấn vào nút “Đăng xuất” để trở lại trang chủ.
Trang chi tiết sách
Trang này cung cấp thông tin chi tiết về quyển sách, bao gồm tiêu đề, tên tác giả, tóm tắt nội dung, giá bán, hình ảnh bìa sách và nút thêm vào giỏ hàng.
H ình 17: Trang chi tiết sách.
Trang giỏ hàng
- Trang này cho phép bạn những quyển sách bạn đã thêm vào giỏ hàng sau khi nhấn nút “Thêm vào giỏ hàng” ở trang “Chi tiết sách”
Hình 18: Trang giỏ hàng khi có sản phẩm.
TỔNG KẾT
- Chương trình có giao diện thân thiện, thuận tiện cho người sử dụng.
- Chức năng thêm, xóa, chỉnh sửa…được thực hiện nhanh chóng và thuận tiện
- Dễ dàng sử dụng và quản lý.
- Do thời gian nghiên cứu có hạn và khả năng còn hạn chế nên một số chức năng vẫn chỉ còn trên ý tưởng, chưa được thực thi
- Website có tính chuyên nghiệp chưa cao, chức năng còn ít
- Chưa giải quyết chọn vẹn các vấn đề nảy sinh trong quá trình quản lý
- Giao diện tuy thân thiện nhưng tính thẩm mĩ chưa được cao.
- Ứng dụng vẫn chưa được Public và chưa được sử dụng Online
- Thêm chức năng thanh toán, in bill.
- Xây dựng hệ thống gửi mail cho khách hàng về những sách mới nhất.
- Áp dụng thanh toán trực tuyến.
- Bổ sung chat với khách hàng.