You are on page 1of 37

ĐỒ ÁN NHÓM 3

XÂY DỰNG WEB BÁN ĐIỆN THOAI DI ĐỘNG


1.CÁC THÀNH VIÊN NHÓM 3:

 Trần Minh Nghĩa + 27211248504


 Nguyễn Ngọc Khánh Linh + 26204328485
 Nguyễn Thị Thu Trinh + 26204333892
 Phan Anh Vũ + 26204333892
 Trần Hậu lộc + 27211252984

2.GIỚI THIỆU VỀ WEBSITE

-Đây là website bán hàng thông minh trực tuyến nhằm hỗ trợ khách
hàng có thể tự đặt hàng online, tiết kiệm thời gian.

-Ngôn ngữ sử dụng: ASP.NET + C# + SQL

-Dự án bao gồm 2 phần: Client (phía khách hàng) và Admin (Phía
quản trị viên.
-Các module:
• Phía Client:Trang chủ, Danh mục macbook, Danh mục điện thoại, Danh mục Pc, Trang blog,
Trang liên hệ.
• Phía Admin:LoginAdmin, Thêm sản phẩm, CRD sản phẩm.

-Một số chức năng chính:


+Phía Client:
• Đặt hàng

• Xem chi tiết sản phẩm

• Xem danh sách sản phẩm theo danh mục

+Phía Client:
• Đăng nhập

• CRD: sản phẩm


3.CHỤP ẢNH GIAO DIỆN

-Trang chủ
-Danh mục macbook
-Danh mục điện thoại
-Danh mục Pc
-Trang blog
-Trang liên hệ
-Trang LoginAdmin

-Trang Admin
4.CHỤP CODE

-CODE MASTER

+Master

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="MasterPage.master.cs"


Inherits="TranMinhNghia_8504.MasterPage" %>

<!DOCTYPE html>

<html>

<head runat="server">

<!-- Required meta tags -->

<meta charset="UTF-8">

<meta http-equiv="X-UA-Compatible" content="IE=edge">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<!-- Bootstrap CSS -->

<!-- <link rel="stylesheet" href="assets/css/reset.css"> -->

<link rel="stylesheet" href="boostrap/css/bootstrap.min.css">

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/


all.min.css">

<link rel="preconnect" href="https://fonts.googleapis.com">

<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>

<link href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;600;700&display=swap"
rel="stylesheet">

<link rel="stylesheet" href="css/reset.css">

<link rel="stylesheet" href="css/style.css">

<!-- link này ở hàng 2 assets -->

<link rel="stylesheet" href="owlcarousel/assets/owl.carousel.min.css">

<!-- link này ở hàng 3 assets -->


<link rel="stylesheet" href="owlcarousel/assets/owl.theme.default.css">

<!-- <script src="https://code.jquery.com/jquery-3.6.0.min.js"

integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4="
crossorigin="anonymous"></script> -->

<script src="jquery.min.js"></script>

<script src="owlcarousel/owl.carousel.min.js"></script>

<title>Project-C#-Sql-.net </title>

<asp:ContentPlaceHolder ID="head" runat="server">

</asp:ContentPlaceHolder>

<style>

.horizontal-list li {

margin-right: 10px;

table tbody {

display: flex;

table tbody tr {

margin-right: 39px;

.login-container {

display: flex;
justify-content: center;

align-items: center;

margin-top: 50px;

</style>

</head>

<body>

<form id="form1" runat="server">

<div>

<div id="wrapper">

<div id="header">

<div class="top-header d-none d-md-block">

<div class="container">

<div class="row">

<div class="col-12 d-flex justify-content-between align-items-center">

<div class="time">

<a href=""><i class="far fa-clock pr-1"></i>Thứ 2 - thứ 7: 8:00am - 20:06am</a>

</div>

<div class="mail"><a href=""><i class="far fa-envelope


pr-1"></i>nhom1@gmail.com</a></div>

<div class="number-phone">

<a href=""><i class="fa-solid fa-phone pr-1"></i>0123456789</a>

</div>

</div>

</div>

</div>

</div>

<nav>

<div class="container col-12 d-flex justify-content-between align-items-center">


<a href="" class="logo">

<img src="image/logo1.png" alt="">

</a>

<div class="horizontal-list">

<asp:DataList ID="dl_danhmuc" runat="server">

<ItemTemplate>

<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click"


Text='<%# Eval("TENDANHMUC") %>' CommandArgument='<%# Eval("MADANHMUC") %>'>

</asp:LinkButton>

</ItemTemplate>

</asp:DataList>

</div>

<div>

<a href="blog.aspx">Blog</a>

<a href="lienhe.aspx" style="margin-left:20px;">Liên hệ</a>

</div>

<div id="search-cart" class="d-none d-lg-block">

<a href="" class="search"><i class="fa-solid fa-magnifying-glass"></i></a>

<div class="cart d-inline-block position-relative">

<a href="giohang.aspx"><i class="fa-solid fa-cart-plus"></i></a>

<span class="cart-notification rounded-circle bg-danger


position-absolute">2</span>

</div>

</div>
</div>

</nav>

</div>

</div>

<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">

</asp:ContentPlaceHolder>

<div class="login-container">

<asp:Login ID="Login1" runat="server" OnAuthenticate="Login1_Authenticate"


TitleText="Thông tin đang nhập " PasswordLabelText="Mật khẩu " RememberMeText="Ghi nhớ đang
nhập" UserNameLabelText="Tên đang nhập"></asp:Login>

</div>

<div id="footer">

<div class="container">

<div class="row">

<div class="col-12 col-md-4">

<div class="box address">

<div class="box-head">

<h3>ĐỊA CHỈ</h3>

</div>

<div class="box-body">

<ul class="list-address list-unstyled">

<li><a href=""><i class="pr-2 fa-solid fa-location-dot"></i>Xóm ...., Xã .....,


Huyện ...., TP Đà Nẵng</a></li>

<li><a href=""><i class="pr-2 fa-solid fa-phone"></i>0123456789</a></li>


<li><a href=""><i class="pr-2 fa-solid
fa-envelope"></i>nhom1@gmail.com</a></li>

</ul>

</div>

</div>

</div>

<div class="col-12 col-md-3">

<div class="container">

<div class="row">

<div class="box">

<div class="box-head">

<h3>VỀ CHÚNG TÔI</h3>

</div>

<div class="box-body">

<ul id="footer-menu" class="list-unstyled">

<li>

<a href="">Về chúng tôi</a>

</li>

<li>

<a href="">Cách đặt hàng</a>

</li>

<li>

<a href="">Kiểm tra đơn hàng</a>

</li>

<li>

<a href="">Hỗ trợ</a>

</li>

</ul>

</div>
</div>

</div>

</div>

</div>

<div class="col-12 col-md-3">

<div class="container">

<div class="row">

<div class="box">

<div class="box-head">

<h3>DANH MỤC</h3>

</div>

<div class="box-body">

<ul id="category-menu" class="list-unstyled">

<li>

<a href="">Giày thể thao</a>

</li>

<li>

<a href="">Váy</a>

</li>

<li>

<a href="">Kính mắt</a>

</li>

<li>

<a href="">Túi xách</a>

</li>

</ul>

</div>

</div>

</div>
</div>

</div>

<div class="col-12 col-md-2">

<div class="container">

<div class="row">

<div class="box">

<div class="box-head">

<h3>SOCIAL</h3>

</div>

<div class="box-body">

<ul id="social-menu" class="list-unstyled">

<li>

<a href=""><i class="fab fa-facebook-f pr-2"></i>Facebook</a>

</li>

<li>

<a href=""><i class="fab fa-youtube pr-2"></i>Youtube</a>

</li>

<li>

<a href=""><i class="fa-brands fa-twitter pr-2"></i>Twitter</a>

</li>

</ul>

</div>

</div>

</div>

</div>

</div>

</div>

</div>

</div>
<div id="wp-copyright" class="d-none d-md-block">

<div class="container">

<div class="row">

<div class="col-md-12">

<p class="copyright text-center mb-0">© NHÓM 1</p>

</div>

</div>

</div>

</div>

</div>

</div>

</form>

</body>

</html>

+CODE Master.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
namespace TranMinhNghia_8504
{
public partial class MasterPage : System.Web.UI.MasterPage
{
lopketnoi ketnoi = new lopketnoi();
protected void Page_Load(object sender, EventArgs e)
{

if (IsPostBack) return;
//string maloai = Content.Items["maloai"] + "";
string sql = "select * from DANHMUC";
dl_danhmuc.DataSource = ketnoi.docdulieu(sql);
dl_danhmuc.DataBind();
}

protected void LinkButton1_Click(object sender, EventArgs e)


{
string madanhmuc = ((LinkButton)sender).CommandArgument;
Context.Items["MADANHMUC"] = madanhmuc;
Server.Transfer("Default.aspx");
}

protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)


{
string tendangnhap = Login1.UserName;
string matkhau = Login1.Password;
string sql = "select * from KHACHHANG where TENKHACHHANG ='" + tendangnhap +
"' And MATKHAU='" + matkhau + "'";
DataTable dt = ketnoi.docdulieu(sql);
if (dt.Rows.Count > 0)
{
Session["username"] = tendangnhap;
Server.Transfer("Default.aspx");
}
else
{
Login1.FailureText = "Tên đang nhập và mật khẩu sai";
}
}
}
}

-CODE DEFAUL(Trang chủ)

+Aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.Master"


AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="TranMinhNghia_8504.Default"
%>

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">


</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<style>
#ContentPlaceHolder1_dl_mathang {
display: flex;
justify-content: center;
align-items: center;
}
#ContentPlaceHolder1_dl_mathang tbody{
display: block;
justify-content: center;
align-items: center;
}

</style>
<div id="content">
<div id="slider-banner">
<div class="container-fluid px-0">
<div class="row">
<div class="col-12 px-0">
<div id="home-slide" class="carousel slide" data-
ride="carousel">

<div class="carousel-inner">

<div class="carousel-item active">


<a href="">
<img src="image/TGDD.png" alt=""
class="d-block w-100">
</a>
</div>

<div class="carousel-item">
<a href="">
<img src="image/header.jpg" alt=""
class="d-block w-100">
</a>
</div>

<div class="carousel-item">
<a href="">
<img src="image/header.jpg" alt=""
class="d-block w-100">
</a>
</div>

<a href="#home-slide" class="carousel-


control-prev" data-slide="prev">
<span class="carousel-control-prev-
icon"></span>
</a>
<a href="#home-slide" class="carousel-
control-next" data-slide="next">
<span class="carousel-control-next-
icon"></span>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
<div id="support-service" class="d-none d-md-block">
<div class="container">
<div class="row">
<div class="col-md-4">
<div class="box change-pay">
<a href="" class="d-block">
<i class="fa-solid fa-shield-halved"></i>
<p>Đổi trả trong 30 ngày</p>
</a>
</div>
</div>
<div class="col-md-4">
<div class="box support">
<a href="" class="d-block">
<i class="fa-solid fa-headphones"></i>
<p>Hỗ trợ 24/7 09888.59.692</p>
</a>
</div>
</div>
<div class="col-md-4">
<div class="box ship">
<a href="" class="d-block">
<i class="fas fa-truck fa-flip-
horizontal"></i>
<p>Miễn phí ship toàn quốc</p>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="center-text" style="display: flex; justify-content: center; align-items:
center;">
<h2>DANH SÁCH SẢN PHẨM</h2>
</div>
<asp:DataList ID="dl_mathang" runat="server" Height="465px" RepeatColumns="4"
RepeatDirection="Horizontal">
<ItemTemplate>
<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl='<%#
"image/"+Eval("HINHANH") %>' Width="200px" CommandArgument='<%# Eval("MATHIETBI") %>'
OnClick="ImageButton1_Click" />
<br />
<asp:LinkButton ID="LinkButton1" runat="server" Text='<%# Eval("TENTHIETBI")
%>' CommandArgument='<%# Eval("MATHIETBI") %>'
OnClick="LinkButton1_Click"></asp:LinkButton>
<br />
Đơn Giá:<asp:Label ID="Label3" runat="server" Text='<%# Eval("DONGIA")
%>'></asp:Label>

</ItemTemplate>
</asp:DataList>
</asp:Content>

+Code Defaul.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace TranMinhNghia_8504
{
public partial class Default : System.Web.UI.Page
{
lopketnoi ketnoi = new lopketnoi();
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack) return;
string madanhmuc = Context.Items["MADANHMUC"] + "";
string sql;
if (madanhmuc != "")
{
sql = "select * from THIETBI where MADANHMUC = " + madanhmuc + " ";
}
else
sql = "select * from THIETBI";
dl_mathang.DataSource = ketnoi.docdulieu(sql);
dl_mathang.DataBind();
}

protected void LinkButton1_Click(object sender, EventArgs e)


{
string mahang = ((LinkButton)sender).CommandArgument;
Context.Items["MATHIETBI"] = mahang;
Server.Transfer("chititetsanpham.aspx");
}

protected void ImageButton1_Click(object sender, EventArgs e)


{
string mahang = ((ImageButton)sender).CommandArgument;
Context.Items["MATHIETBI"] = mahang;
Server.Transfer("chititetsanpham.aspx");
}
}
}

-CODE TRANG BLOG ASPX

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.Master"


AutoEventWireup="true" CodeBehind="blog.aspx.cs" Inherits="TranMinhNghia_8504.blog" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">


</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<style>
#detail-blog-wp {
margin:20px 150px 150px 150px;
}
#detail-blog-wp .detail{

text-align: center;

}
</style>
<h2 style="display: flex; justify-content: center; align-items: center;">Trang bài
viết
</h2>

<div class="section" id="detail-blog-wp">

<div class="section-detail">
<h3 class="section-title"><b>Iphone 14 Pro Max có thể khan hiếm hàng dịp
cuối năm</b></h3>
<span class="create-date">2022-12-30 10:58:07</span>
<div class="detail">

<p>Dẫn nguồn tin từ chuỗi cung ứng, trang Bloomberg Apple đang phải đối
mặt với tình trạng thiếu hụt gần 6 triệu chiếc iPhone 14 Pro và iPhone 14 Pro Max trong
năm nay.</p>
<p>Tình trạng bất ổn tại nhà máy sản xuất iPhone lớn nhất thế giới của
Foxconn ở Trịnh Châu đã kéo dài trong hơn một tháng qua. Hàng nghìn nhân viên bỏ việc,
khiến đối tác của Apple thiếu nhân công để lắp ráp iPhone.</p>
<figure class="image align-center">
<img title="iPhone 14 Pro Max có thể khan hàng dịp cuối năm - 1"
src="https://icdn.dantri.com.vn/thumb_w/680/2022/11/28/iphone-14-pro-max-
1669612345064.jpg" alt="iPhone 14 Pro Max có thể khan hàng dịp cuối năm - 1" data-
width="1440" data-height="810" data-
original="https://icdn.dantri.com.vn/2022/11/28/iphone-14-pro-max-1669612345064.jpg"
data-photo-id="2238764" data-track-content="" data-content-name="article-content-image"
data-content-piece="article-content-image_2238764" data-content-
target="/suc-manh-so/iphone-14-pro-max-co-the-khan-hang-dip-cuoi-nam-
20221201175945316.htm" data-adbro-processed="true">
<figcaption>
<p>Nguồn cung đối với iPhone 14 Pro và iPhone 14 Pro Max vẫn chưa
ổn định (Ảnh: SCMP).</p>
</figcaption>
</figure>
<p>Hiện tại, đây là nhà máy chịu trách nhiệm chính trong hoạt động sản
xuất&nbsp;<a href="https://dantri.com.vn/tim-kiem/iphone+14.htm" data-auto-link-
id="62cea286d111cdb85e86a5ad" data-track-content="" data-content-name="article-content-
autolink" data-content-piece="article-content-autolink_62cea286d111cdb85e86a5ad" data-
content-target="/suc-manh-so/iphone-14-pro-max-co-the-khan-hang-dip-cuoi-nam-
20221201175945316.htm">iPhone 14</a>&nbsp;Pro và iPhone 14 Pro Max. Sau thông tin trên,
cổ phiếu Apple đã giảm 2,6% giá trị. Nguồn tin này cho biết Apple và Foxconn kỳ vọng có
thể bù đắp sự thiếu hụt trên vào năm 2023.</p>
<p>Theo các chuyên gia từ&nbsp;<em>Counterpoint Research</em>, thời gian
giao hàng đối với&nbsp;<a href="https://dantri.com.vn/tim-kiem/iphone+14+pro.htm" data-
auto-link-id="62cea2aad111cdb85e86da91" data-track-content="" data-content-name="article-
content-autolink" data-content-piece="article-content-autolink_62cea2aad111cdb85e86da91"
data-content-target="/suc-manh-so/iphone-14-pro-max-co-the-khan-hang-dip-cuoi-nam-
20221201175945316.htm">iPhone 14 Pro</a>&nbsp;và iPhone 14 Pro Max đã tăng lên mức kỷ
lục. Cụ thể, người dùng đặt mua hai mẫu máy này sẽ phải chờ đợi đến 37 ngày để có thể
nhận được máy. Trong khi đó, hai mẫu&nbsp;<a contenteditable="false"
href="https://dantri.com.vn/suc-manh-so/iphone-14-giam-gia-rat-sau-thi-truong-don-nhan-
tich-cuc-20221128003943786.htm">iPhone 14</a>&nbsp;tiêu chuẩn vẫn sẵn hàng.</p>
<p>"Chúng tôi ước tính Apple đang thiếu hụt iPhone nghiêm trọng. Điều đó
sẽ khiến công ty bị giảm ít nhất 5% doanh số trong quý và có khả năng lên đến 10% tùy
thuộc vào hoạt động sản xuất của nhà máy Foxconn trong vài tuần tới", Dan Ives - nhà phân
tích của&nbsp;<em>Wedbush</em>, nhận định.</p>
<p>Trong một bài đăng trên Twitter, nhà phân tích Ming-Chi Kuo dự kiến
Apple sẽ xuất xưởng ít hơn 15-20 triệu chiếc iPhone 14 Pro và&nbsp;<a
href="https://dantri.com.vn/tim-kiem/iphone+14+pro+max.htm" data-auto-link-
id="62cea2d5d111cdb85e86fd3f" data-track-content="" data-content-name="article-content-
autolink" data-content-piece="article-content-autolink_62cea2d5d111cdb85e86fd3f" data-
content-target="/suc-manh-so/iphone-14-pro-max-co-the-khan-hang-dip-cuoi-nam-
20221201175945316.htm">iPhone 14 Pro Max</a>&nbsp;so với dự kiến.&nbsp;Theo Kuo, công
suất của nhà máy tại Trịnh Châu chỉ đạt 20% trong tháng 11. Dự kiến, con số này sẽ tăng
lên khoảng 30-40% trong tháng tới.</p>
<p>Tuy nhiên, Kuo nói rằng nhu cầu của người dùng đối với dòng sản phẩm
iPhone 14 Pro đang dần biết mất. Nguyên nhân là do thời gian chờ đợi quá lâu.</p>
<p>"Những người tiêu dùng không thể mua được chiếc iPhone 14 Pro vào lúc
này sẽ không trì hoãn việc mua hàng của họ. Trong tình hình suy thoái kinh tế như hiện
nay, nhiều khả năng người dùng sẽ quên đi việc mua hàng, thay vì chờ đợi và tiếp tục mua
máy trong tương lai", Kuo viết.</p>
<p>Cũng theo nhận định từ nhiều chuyên gia, Apple đang tìm cách đa dạng
hóa nguồn cung ứng, nhằm giảm sự phụ thuộc vào Trung Quốc. Hiện tại, công ty đang tích
cực mở rộng nhiều hoạt động thông qua các đối tác ở Ấn Độ, Mexico và Việt Nam.</p>
<p>Tại thị trường Việt Nam, tình trạng khan hàng đối với iPhone 14 Pro và
iPhone 14 Pro Max cũng liên tục kéo dài kể từ khi bộ đôi này lên kệ. Giữa tháng 11, một
lô hàng lớn đã được nhập về, nhưng vẫn chưa đáp ứng được hết nhu cầu của khách hàng.</p>
<p>"Đợt hàng vừa qua đã tạm thời giúp "giải nhiệt" nhu cầu của thị
trường. Hiện tại, lượng hàng iPhone 14 Pro và iPhone 14 Pro Max có thể đáp ứng được 50%
nhu cầu của người dùng", bà Phùng Phương - đại diện truyền thông hệ thống Di Động Việt,
chia sẻ.</p>
<p>Bà Phương cho biết thêm rằng đợt hàng tiếp theo sẽ được đưa về vào
giữa tháng 12. Tuy nhiên, vẫn chưa thể xác định chính xác nguồn cung từ Apple có đủ để
đáp ứng nhu cầu mua sắm của người dùng vào dịp cuối năm hay không. Nhiều khả năng, các
phiên bản như iPhone 14 Pro Max màu tím vẫn sẽ đối mặt với tình trạng khan hàng, ngay cả
khi có đợt nhập máy mới.</p>

</div>
</div>
</div>
</asp:Content>

-CODE TRANG LIÊN HỆ ASPX

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.Master"


AutoEventWireup="true" CodeBehind="lienhe.aspx.cs" Inherits="TranMinhNghia_8504.lienhe"
%>

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">


</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<div class="section" id="detail-blog-wp">
<div class="section-head clearfix">
<h3 style="display: flex; justify-content: center; align-items: center;"
class="section-title">Liên hệ</h3>
</div>
<div class="section-detail">

<div class="detail">
<p style="text-align: center;"><strong>THÔNG TIN LIÊN HỆ</strong><br>
Tư vấn &amp; Hỗ Trợ trực tuyến :<br>
Hoạt Động Từ (08:30 - 12:00; 13:30 - 23:30)</p>
<p style="text-align: center;">Số điện thoại liên hệ : 0123456789</p>
<p style="text-align: center;">Facebook : nhóm 1</p>
<p style="text-align: center;">&nbsp;</p>
<p style="text-align: center;">Đà Nẵng&nbsp;: (034).5910508</p>
<p style="text-align: center;">TP.ĐÀ NẴNG&nbsp;: (034).5910508</p>
<p style="text-align: center;">Email hỗ trợ bán hàng Online, doanh nghiệp
: nhom1<a href="mailto:dn5678853@gmail.com">@gmail.com</a></p>
<p style="text-align: center;">Mọi thông tin chi tiết về dịch vụ làm chăm
sóc khách&nbsp;hàng, hãy liên hệ những thông tin bên trên Xin cảm ơn !</p>
<p>
<img style="display: block; margin-left: auto; margin-right: auto;"
src="https://cdn.pixabay.com/photo/2017/10/17/10/03/contact-2860030__340.jpg"
srcset="https://cdn.pixabay.com/photo/2017/10/17/10/03/contact-2860030__340.jpg 1x,
https://cdn.pixabay.com/photo/2017/10/17/10/03/contact-2860030__480.jpg 2x" alt="Liên
Lạc, Thăm Nom, Chữ Cái, E-Mail"></p>
</div>
</div>

<div class="section" id="social-wp">


<div class="section-detail">
<div class="fb-like fb_iframe_widget" data-href="" data-
layout="button_count" data-action="like" data-size="small" data-show-faces="true" data-
share="true" fb-xfbml-state="rendered" fb-iframe-plugin-
query="action=like&amp;app_id=849340975164592&amp;container_width=878&amp;href=http%3A%2F
%2Fminhnghia.unitopcv.com%2Fproject%2Funimart%2Ftrang-lien-
he.html&amp;layout=button_count&amp;locale=vi_VN&amp;sdk=joey&amp;share=true&amp;show_fac
es=true&amp;size=small"><span style="vertical-align: bottom; width: 150px; height:
28px;">
<iframe name="f174818becff1e8" width="1000px" height="1000px" data-
testid="fb:like Facebook Social Plugin" title="fb:like Facebook Social Plugin"
frameborder="0" allowtransparency="true" allowfullscreen="true" scrolling="no"
allow="encrypted-media" src="https://web.facebook.com/v2.8/plugins/like.php?
action=like&amp;app_id=849340975164592&amp;channel=https%3A%2F%2Fstaticxx.facebook.com
%2Fx%2Fconnect%2Fxd_arbiter%2F%3Fversion%3D46%23cb%3Dfa64b9cb55ec9c%26domain
%3Dminhnghia.unitopcv.com%26is_canvas%3Dfalse%26origin%3Dhttp%253A%252F
%252Fminhnghia.unitopcv.com%252Ff24b5d9477762%26relation
%3Dparent.parent&amp;container_width=878&amp;href=http%3A%2F%2Fminhnghia.unitopcv.com
%2Fproject%2Funimart%2Ftrang-lien-
he.html&amp;layout=button_count&amp;locale=vi_VN&amp;sdk=joey&amp;share=true&amp;show_fac
es=true&amp;size=small" style="border: none; visibility: visible; width: 150px; height:
28px;" class=""></iframe>
</span></div>
<div class="g-plusone-wp">
<div class="g-plusone" data-size="medium"></div>
</div>
<div class="fb-comments fb_iframe_widget fb_iframe_widget_fluid_desktop"
id="fb-comment" data-href="" data-numposts="5" fb-xfbml-state="rendered" fb-iframe-
plugin-query="app_id=849340975164592&amp;container_width=878&amp;height=100&amp;href=http
%3A&amp;locale=vi_VN&amp;numposts=5&amp;sdk=joey&amp;title=UNIMART%20STORE&amp;url=http
%3A%2F%2Fminhnghia.unitopcv.com%2Fproject%2Funimart%2Ftrang-lien-
he.html&amp;version=v2.8&amp;width=550&amp;xid=http%253A%252F%252Fminhnghia.unitopcv.com
%252Fproject%252Funimart%252Ftrang-lien-he.html"><span style="vertical-align: top; width:
0px; height: 0px; overflow: hidden;">
<iframe name="f373358b6331bbc" width="550px" height="100px" data-
testid="fb:comments Facebook Social Plugin" title="fb:comments Facebook Social Plugin"
frameborder="0" allowtransparency="true" allowfullscreen="true" scrolling="no"
allow="encrypted-media" src="https://web.facebook.com/v2.8/plugins/comments.php?
app_id=849340975164592&amp;channel=https%3A%2F%2Fstaticxx.facebook.com%2Fx%2Fconnect
%2Fxd_arbiter%2F%3Fversion%3D46%23cb%3Df3b62dbcc9ce854%26domain%3Dminhnghia.unitopcv.com
%26is_canvas%3Dfalse%26origin%3Dhttp%253A%252F%252Fminhnghia.unitopcv.com
%252Ff24b5d9477762%26relation
%3Dparent.parent&amp;container_width=878&amp;height=100&amp;href=http
%3A&amp;locale=vi_VN&amp;numposts=5&amp;sdk=joey&amp;title=UNIMART%20STORE&amp;url=http
%3A%2F%2Fminhnghia.unitopcv.com%2Fproject%2Funimart%2Ftrang-lien-
he.html&amp;version=v2.8&amp;width=550&amp;xid=http%253A%252F%252Fminhnghia.unitopcv.com
%252Fproject%252Funimart%252Ftrang-lien-he.html" style="border: none; visibility:
visible; width: 0px; height: 0px;"></iframe>
</span></div>
</div>
</div>

</div>
</asp:Content>

-CODE CHITIETSANPHAM ASPX

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.Master"


AutoEventWireup="true" CodeBehind="chititetsanpham.aspx.cs"
Inherits="TranMinhNghia_8504.chititetsanpham" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">


</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<style>
tr {
}

table.custom-table tbody {
display: block;
}

.custom-container {
display: flex;
justify-content: center;
align-items: center;

}
</style>
<div class="custom-container">
<asp:DataList ID="DataList1" runat="server">
<ItemTemplate>
<table style="width: 100%; height: 300px;margin-top:30px;" class="custom-
table">
<tr>
<td rowspan="4">
<asp:Image ID="Image1" runat="server" Height="166px"
ImageUrl='<%# "image/"+Eval("HINHANH") %>' Width="143px" />
</td>
<td>
<asp:Label ID="Label1" runat="server" Text='<%#
Eval("TENTHIETBI") %>'></asp:Label>
</td>
</tr>
<tr>
<td>Mô Tả:
<asp:Label ID="Label2" runat="server" Text='<%# Eval("MOTA")
%>'></asp:Label>
</td>
</tr>
<tr>
<td>Đơn Giá:<asp:Label ID="Label3" runat="server" Text='<%#
Eval("DONGIA") %>'></asp:Label>
</td>
</tr>
<tr>
<td class="auto-style3">Số Lượng:
<asp:TextBox ID="txtSoluong" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Đặt Hàng"
CommandArgument='<%# Eval("MATHIETBI") %>' OnClick="Button1_Click" />
<a href="giohang.aspx">Giỏ hàng</a>
</td>
</tr>

</table>
</ItemTemplate>

</asp:DataList>
</div>
<asp:Label ID="lb_thongBao" runat="server" Text=""></asp:Label>
</asp:Content>

+CODE CHITIETSANPHAM.CS

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
namespace TranMinhNghia_8504
{
public partial class chititetsanpham : System.Web.UI.Page
{
lopketnoi ketnoi = new lopketnoi();
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack) return;
string mathietbi = Context.Items["MATHIETBI"] + "";
if (mathietbi != "")
{
string sql = "Select * from THIETBI where mathietbi = '" + mathietbi +
"'";
DataList1.DataSource = ketnoi.docdulieu(sql);
DataList1.DataBind();
}
else
{
lb_thongBao.Text = "Sản Phẩm không tồn tại";
}
}

protected void Button1_Click(object sender, EventArgs e)


{
string tendangnhap = Session["username"] + " ";
if (tendangnhap != " ")
{
string mathietbi = ((Button)sender).CommandArgument;
Button bt_mua = (Button)sender;
DataListItem item = (DataListItem)bt_mua.Parent;
TextBox txtSl = (TextBox)item.FindControl("txtSoluong");
string soluong = txtSl.Text;

string sql_dulieu = "select * from DATHANG where TENKHACHHANG='" +


tendangnhap + "' And MATHIETBI='" + mathietbi + "'";
DataTable dt = ketnoi.docdulieu(sql_dulieu);
string sql;
if (dt != null && dt.Rows.Count > 0)
{
sql = "update DATHANG set SOLUONG = SOLUONG +" + soluong + " where
TENKHACHHANG='" + tendangnhap + "' and MATHIETBI=" + mathietbi;
}
else
{
sql = "insert into DATHANG values('" + tendangnhap + "'," + mathietbi
+ "," + soluong + ")";
}

int kq = ketnoi.capnhat(sql);
if (kq > 0) lb_thongBao.Text = "thành công";

else lb_thongBao.Text = "không thành công";

}
else
{
lb_thongBao.Text = "bạn phải đăng nhập";
}
}

-CODE GIOHANG.ASPX
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.Master"
AutoEventWireup="true" CodeBehind="giohang.aspx.cs" Inherits="TranMinhNghia_8504.giohang"
%>

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">


</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<style>
/* Áp dụng CSS cho tbody trong GridView trên trang con */
.custom-gridview tbody {
display: block !important;
margin-bottom: 200px;
margin-left: 523px;
margin-top: 100px;
margin-right: 500px;
}
h2.giohang{
display: flex;
justify-content: center;
align-items: center;
}
</style>
<h2 class="giohang">Giỏ hàng</h2>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
CssClass="custom-gridview">
<%--OnSelectedIndexChanged="GridView1_SelectedIndexChanged"--%>

<Columns>

<asp:BoundField DataField="TENTHIETBI" HeaderText="Tên thiết bị" />

<asp:BoundField DataField="DONGIA" HeaderText="Đơn giá" />

<asp:TemplateField HeaderText="Số lượng">

<ItemTemplate>
<asp:TextBox ID="txtSoluong" runat="server" Text='<%# Eval("SOLUONG")
%>'></asp:TextBox>

</ItemTemplate>

</asp:TemplateField>
<asp:BoundField DataField="THANHTIEN" HeaderText="Thành tiền" />
<asp:TemplateField HeaderText="xóa">
<ItemTemplate>
<asp:LinkButton ID="LinkButton3" runat="server" CommandArgument='<%#
Eval("MATHIETBI") %>' OnClick="LinkButton3_Click">xóa</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>

</Columns>

</asp:GridView>

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


</asp:Content>

-CODE GIOHANG.CS

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

namespace TranMinhNghia_8504
{
public partial class giohang : System.Web.UI.Page
{
lopketnoi ketnoi = new lopketnoi();
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack) return;
string tendangnhap = Session["username"] + "";
if (tendangnhap == "") return;
load_dulieu(tendangnhap);
}
protected void load_dulieu(string tendangnhap)
{
string sql = "select THIETBI.MATHIETBI, TENTHIETBI,MOTA,DONGIA,SOLUONG,
DONGIA*SOLUONG AS THANHTIEN" +
" from THIETBI,DATHANG " +
"where THIETBI.MATHIETBI = DATHANG.MATHIETBI and TENKHACHHANG='" +
tendangnhap + "'";
GridView1.DataSource = ketnoi.docdulieu(sql);
GridView1.DataBind();
}
public void LinkButton3_Click(object sender, EventArgs e)
{
string tendangnhap = Session["username"] + "";
if (tendangnhap == "") return;
string mathietbi = ((LinkButton)sender).CommandArgument;
string sql = "delete from DATHANG where TENKHACHHANG='" + tendangnhap + "'
and MATHIETBI=" + mathietbi;
int kq = ketnoi.capnhat(sql);
if (kq > 0)
{
lbthongbao.Text = "thành công";
}
else lbthongbao.Text = "không thành công";

load_dulieu(tendangnhap);
}

protected void Button1_Click(object sender, EventArgs e)


{
string tendangnhap = Session["username"] + "";
if (tendangnhap == "") return;
string mathietbi = ((Button)sender).CommandArgument;
Button bt_sua = (Button)sender;
GridViewRow item = (GridViewRow)bt_sua.Parent.Parent;
TextBox txtSl = (TextBox)item.FindControl("txtSoluong");
string soluong = txtSl.Text;

string sql = "update DATHANG set SOLUONG = " + soluong + " where
TENKHACHHANG='" + tendangnhap + "' and MATHIETBI=" + mathietbi;
int kq = ketnoi.capnhat(sql);
if (kq > 0)
{
lbthongbao.Text = "Thành công";

}
else lbthongbao.Text = "không thành công";
load_dulieu(tendangnhap);
}
}
}

-CODE LOGIN ADMIN.ASPX

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="loginAdmin.aspx.cs"


Inherits="TranMinhNghia_8504.loginAdmin" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<style>
.center-div {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;

/* Thiết lập chiều cao bằng chiều cao của màn hình */
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div class="center-div">
<h2>ĐĂNG NHẬP</h2>

<label>Tên đăng nhập:</label>


<asp:TextBox ID="txtUsername" runat="server"></asp:TextBox>
<br />
<br />
<label>Mật khẩu:</label>
<asp:TextBox ID="txtPassword" runat="server"
TextMode="Password"></asp:TextBox>
<br />
<br />
<asp:Button ID="btnLogin" runat="server" Text="Đăng nhập"
OnClick="btnLogin_Click" />
<asp:Label ID="lb_thongbao" runat="server" Text=""></asp:Label>
</div>
</form>
</body>
</html>

-CODE LOGIN ADMIN.CS

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

namespace TranMinhNghia_8504
{
public partial class loginAdmin : System.Web.UI.Page
{
protected string ErrorMessage { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ErrorMessage = "";
}
}
protected void btnLogin_Click(object sender, EventArgs e)
{
string username = txtUsername.Text.Trim();
string password = txtPassword.Text.Trim();

// Kiểm tra tên người dùng và mật khẩu (ở đây chỉ là một ví dụ đơn giản)
if (username == "admin" && password == "12345")
{
// Đăng nhập thành công, chuyển hướng vào trang admin
Response.Redirect("Admin.aspx");
}
else
{
// Hiển thị thông báo lỗi đăng nhập
lb_thongbao.Text = "Tên người dùng hoặc mật khẩu không chính xác.";
}
}
}
}

-CODE ADMIN.ASPX
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Admin.aspx.cs"
Inherits="TranMinhNghia_8504.Admin" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<h2>Thêm sản phẩm</h2>
<div>
<table style="width: 100%;">
<tr>
<td>
<label for="txtProductName">Tên sản phẩm:</label></td>
<td>
<label for="txtDescription">Mô tả:</label></td>
<td>
<label for="txtPrice">Giá sản phẩm:</label></td>
</tr>
<tr>
<td>
<asp:TextBox ID="txtProductName"
runat="server"></asp:TextBox></td>
<td>
<asp:TextBox ID="txtDescription"
runat="server"></asp:TextBox></td>
<td>
<asp:TextBox ID="txtPrice" runat="server"></asp:TextBox></td>
</tr>
</table>

<asp:Button ID="btnSubmit" runat="server" Text="Submit"


OnClick="btnSubmit_Click" />
<asp:Label ID="lblMessage" runat="server" Text=""></asp:Label>
</div>
<div>
<h2>Danh sách sản phẩm</h2>
</div>
<asp:DataList ID="dl_mathang" runat="server" Height="225px" RepeatColumns="2"
OnItemCommand="dl_mathang_ItemCommand">

<ItemTemplate>
<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl='<%#
"image/"+Eval("HINHANH") %>' Width="200px" CommandArgument='<%# Eval("MATHIETBI") %>'
OnClick="ImageButton1_Click" />
<br />
<asp:LinkButton ID="LinkButton1" runat="server" Text='<%#
Eval("TENTHIETBI") %>' CommandArgument='<%# Eval("MATHIETBI") %>'
OnClick="LinkButton1_Click"></asp:LinkButton>
<br />
Đơn Giá:<asp:Label ID="Label3" runat="server" Text='<%# Eval("DONGIA")
%>'></asp:Label>
<%-- <asp:LinkButton ID="LinkButton2" runat="server">CHI
TIẾT</asp:LinkButton>--%>
<br />
<asp:LinkButton ID="lnkDelete" runat="server" Text="Xóa"
CommandName="Delete" CommandArgument='<%# Eval("MATHIETBI") %>' OnClientClick="return
confirm('Bạn có chắc chắn muốn xóa sản phẩm?');"></asp:LinkButton>
</ItemTemplate>

</asp:DataList>
<asp:Label ID="lbthongbao" runat="server" Text=""></asp:Label>
</form>
</body>
</html>

-CODE ADMIN.CS

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;
namespace TranMinhNghia_8504
{
public partial class Admin : System.Web.UI.Page
{
lopketnoi ketnoi = new lopketnoi();

protected void Page_Load(object sender, EventArgs e)


{
if (IsPostBack) return;
string madanhmuc = Context.Items["MADANHMUC"] + "";
string sql;
if (madanhmuc != "")
{
sql = "select * from THIETBI where MADANHMUC = " + madanhmuc + " ";
}
else
sql = "select * from THIETBI";
dl_mathang.DataSource = ketnoi.docdulieu(sql);
dl_mathang.DataBind();
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
string productName = txtProductName.Text;
string description = txtDescription.Text;
float price = float.Parse(txtPrice.Text);
int madanhmuc = 1;
string hinhanh = "iphone-13.jpg";
// Lưu dữ liệu vào cơ sở dữ liệu
string connectionString =
ConfigurationManager.ConnectionStrings["YourConnectionString"].ConnectionString;
string insertQuery = "INSERT INTO dbo.THIETBI (TENTHIETBI, MOTA,
DONGIA,HINHANH,MADANHMUC) VALUES (@TENTHIETBI, @MOTA, @DONGIA,@HINHANH,@MADANHMUC)";

using (SqlConnection connection = new SqlConnection(connectionString))


{
SqlCommand command = new SqlCommand(insertQuery, connection);
command.Parameters.AddWithValue("@TENTHIETBI", productName);
command.Parameters.AddWithValue("@MOTA", description);
command.Parameters.AddWithValue("@DONGIA", price);
command.Parameters.AddWithValue("@HINHANH", hinhanh);
command.Parameters.AddWithValue("@MADANHMUC", madanhmuc);
connection.Open();
command.ExecuteNonQuery();
connection.Close();

// Hiển thị thông báo hoặc thực hiện các hành động khác sau khi lưu dữ
liệu thành công
lblMessage.Text = "Sản phẩm đã được thêm thành công!";
}
}
protected void LinkButton1_Click(object sender, EventArgs e)
{
string mahang = ((LinkButton)sender).CommandArgument;
Context.Items["MATHIETBI"] = mahang;
Server.Transfer("chititetsanpham.aspx");
}

protected void ImageButton1_Click(object sender, EventArgs e)


{
string mahang = ((ImageButton)sender).CommandArgument;
Context.Items["MATHIETBI"] = mahang;
Server.Transfer("chititetsanpham.aspx");
}
protected void dl_mathang_ItemCommand(object source, DataListCommandEventArgs e)
{
if (e.CommandName == "Delete")
{
string mathietbi = e.CommandArgument.ToString();

// Xử lý xóa sản phẩm dựa trên MATHIETBI từ cơ sở dữ liệu hoặc nguồn dữ


liệu tương ứng.
// Ví dụ:
DeleteProduct(mathietbi);

// Sau khi xóa, cập nhật lại danh sách sản phẩm.
BindDataList();
}
}

private void DeleteProduct(string mathietbi)


{
// Xử lý xóa sản phẩm dựa trên MATHIETBI từ cơ sở dữ liệu hoặc nguồn dữ liệu
tương ứng.
// Ví dụ: Sử dụng câu lệnh SQL để xóa sản phẩm có MATHIETBI tương ứng.
string connectionString =
ConfigurationManager.ConnectionStrings["YourConnectionString"].ConnectionString;
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
string query = "DELETE FROM THIETBI WHERE MATHIETBI = @Mathietbi";
using (SqlCommand command = new SqlCommand(query, connection))
{
command.Parameters.AddWithValue("@Mathietbi", mathietbi);
command.ExecuteNonQuery();
}
}
}

private void BindDataList()


{
// Cập nhật lại danh sách sản phẩm trong DataList.
// Viết mã để lấy và hiển thị danh sách sản phẩm ở đây.
string connectionString =
ConfigurationManager.ConnectionStrings["YourConnectionString"].ConnectionString;
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
string query = "SELECT * FROM THIETBI";
using (SqlCommand command = new SqlCommand(query, connection))
{
using (SqlDataAdapter adapter = new SqlDataAdapter(command))
{
DataTable dataTable = new DataTable();
adapter.Fill(dataTable);
dl_mathang.DataSource = dataTable;
dl_mathang.DataBind();
}
}
}
}
}
}

-CODE LOPKETNOI.CS

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;
namespace TranMinhNghia_8504
{
public class lopketnoi : System.Web.UI.Page
{
SqlConnection conn;
private void layketnoi()
{
string sqlCon = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=" +
Server.MapPath("/App_Data/dbTHIETBI.mdf") + ";Integrated Security=True";
conn = new SqlConnection(sqlCon);
conn.Open();
}
private void dongketnoi()
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
public DataTable docdulieu(string sql)
{
DataTable dt = new DataTable();
try
{
layketnoi();
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
da.Fill(dt);
}
catch
{
dt = null;
//thông báo lỗi
}
finally
{
dongketnoi();
}
return dt;
}
public int capnhat(string sql)
{
int kq = 0;
try
{
layketnoi();
SqlCommand cmd = new SqlCommand(sql, conn);
kq = cmd.ExecuteNonQuery();
}
catch
{
//lỗi
}
finally
{
dongketnoi();
}

return kq;

}
}
}

You might also like