vs2015 dynamicweb11-1 .NET PET SHOP宠物商店完整项目代码

258 篇文章 2 订阅

此练习为一个完整的项目代码,含有用户注册、用户登录、宠物商品列表、购物车、结算、个人信息更新等功能。

在项目根目录,先创建App_Themes文件夹,其内建立一个文件夹PetShop1,内含一个css主题样式文件。

stylesheet1.css

/*********网页公共部分*********/
*, html, body {
    margin:0;
    padding:0;
}

body {
    background-color:#e3e5dc;
    margin:0;
    background-image:url("../../Comm_Images/bg-body.gif");
    background-repeat:repeat-x;
}

a:visited {
    color:#333333;
    text-decoration:none;
}

a:hover {
    color:#1639a9;
    text-decoration:underline;
}

a:link {
    color:#333333;
    text-decoration:none;
}

.label {
    font-family:Arial,Helvetica,sans-serif;
    font-size:13px;
    color:#333333;
    margin-left:20px;
    margin-bottom:10px;
    text-align:left;
}


/***********首页部分*************/
.homeBody {
    background-color:#ffffff;
    margin:0;
    background-image:url("../../Comm_Images/home-bg-body.gif");
    background-repeat:repeat-x;
}

.divHome {
    width:800px;
    margin:0 auto;
    height:100px;
}

#logoH {
    float:left;
    width:380px;
    height:40px;
    border:1px solid #cccccc;
    margin-top:20px;
    text-align:center;
    font-size:30px;
    line-height:40px;
    color:#333333;
    font-style:oblique;
    border-radius:15px;
    background-color:#e3e5dc;
}

.homeBgSearch {
    width:306px;
    height:35px;
    float:right;
    margin-top:33px;
}

.homeL {
    width:100%;
    height:60px;
    background-color:#e3e5dc;
}

.homeSearchBox {
    font-size:16px;
    line-height:18px;
    color:#404040;
    background-color:#ffffff;
    border-width:1px;
    border-style:solid;
    border-top-color:#e9eed8;
    border-right-color:#c6c3b3;
    border-bottom-color:#abaf94;
    border-left-color:#c6c3b3;
    height:20px;
    margin-top:7px;
    width:160px;
    float:left;
}

.paddingSearchicon {
    width:20px;
    height:20px;
    margin-top:6px;
    margin-left:10px;
    float:left;
    border:1px solid #eeeeee;
}

.homeLink {
    font-family:Arial,Helvetica,sans-serif;
    font-size:15px;
    font-weight:bold;
    color:lightblue;
    width:80px;
    float:left;
    display:inline-block;
    height:20px;
    line-height:15px;
    margin-top:10px;
    margin-left:15px;
}


.divContent {
    width:800px;
    margin:0 auto;
    height:400px;

}

.divContent .leftH {
    float:left;
          
}

#seahorse {
    width:112px;
    float:left;
}

#mainContent {
    position:relative;
    width:450px;
    top:-26px;
    float:left;
}

.welcome {
    font-family:Arial,Helvetica,sans-serif;
    font-size:15px;
    font-weight:bold;
    color:#ffffff;
    padding-left:20px;
    background-color:#abaf94;
    line-height:26px;
}

.bgControl {
    background-color:#e3e5dc;
}

.intro {
    font-family:Arial,Helvetica,sans-serif;
    font-size:15px;
    font-weight:bold;
    color:#555555;
    padding-top:20px;
    line-height:18px;
    padding-left:20px;
    display:inline-block;
    width:300px;
}



.navigationLabel {
    color:#9a839;
    font-size:15px;
    font-weight:bold;
    line-height:22px;
    font-family:Arial,Helvetica,sans-serif;
    padding-left:20px;
}

.ctMenu {
    padding-left:40px;
    height:270px;
}

.navigationLinks {
    font-family: 宋体,新宋体;
    font-size:16px;
    color:#333333;
    line-height:22px;
    font-weight:bold;
    vertical-align:middle;
    width:300px;
    height:22px;
    border-bottom:1px dotted #555555;
    margin-top:10px;
    margin-bottom: -10px;
}



.footerHome {
    font-family:Arial,Helvetica,sans-serif;
    font-size:14px;
    text-transform:uppercase;
    color:#ffffff;
    background-color:#122e87;
    padding-left:16px;
    line-height:22px;
}

.fishPosition {

}

.fishPosition img {
    position:relative;
    left: 497px;
    top: -331px;
    width:241px;
    height:250px;
    float:left;
}



/************母版页部分**************/

.divMaster {
    width:800px;
    heigt: 100px;
    margin:0 auto;
}

.divLogoM {
    float:left;
    width:380px;
    height:70px;
    border:1px solid #cccccc;
    margin-top:15px;
    margin-bottom:5px;
    text-align:center;
    font-size:30px;
    font-weight:bold;
    line-height:70px;
    color:#333333;
    font-style:oblique;
    border-radius:15px;
    background-color:#e3e5dc;
}


.signIn {
    background-color:#e9eed8;
    width:400px;
    height:40px;
    margin-top:15px;
    float:right;
}

.textboxSearch {
    font-size:16px;
    line-height:24px;
    color:#000000;
    background-color:#ffffff;
    border-width:1px;
    border-style:solid;
    border-top-color:#e9eed8;
    border-right-color:#c6c3b3;
    border-bottom-color:#abaf94;
    border-left-color:#c6c3b3;
    height:24px;
    margin-left:15px;
    float:left;
    margin-top:8px;
    margin-bottom:8px;
    width:180px;
}

#btnSearch {
    float:left;
    width:20px;
    height:20px;
    margin-top:10px;
    margin-bottom:10px;
    margin-left:10px;
}

.link {
    font-family: 宋体;
    font-size:15px;
    color:#333333;
    margin-top:8px;
    margin-bottom:8px;
    margin-left:15px;
    line-height:24px;
    width:60px;
    float:left;
}

#btnLgnStatus {
    float:left;
    line-height:24px;
    margin-top:8px;
    margin-bottom:8px;
    margin-left:15px;
    width:80px;
    font-family: 宋体,Arial;
    font-weight:bold;
}

.disableLink {
    font-family:Arial,Helvetica,sans-serif;
    font-size:0.65em;
    text-transform:uppercase;
    color:#999999;
    text-indent:10px;
}

.checkOut {
    background-color:#abaf94;
    width:400px;
    height:30px;
    float:right;
}

.checkOut img {
    width:20px;
    height:20px;
    margin-left:15px;
    margin-top:5px;
    margin-bottom:5px;
    margin-right:2px;
    border:none;
    float:left;    
}

.checkOutLink {
    font-family: 宋体,Arial;
    font-size:15px;
    color:#333333;
    margin-right:20px;
    line-height:20px;
    margin-top:6px;
    margin-bottom:4px;
    float:left;
}


.divTitle {
    width:800px;
    height:52px;
    margin:0 auto;
    clear:both;
    border-bottom:2px solid #eeeeee;
}

.breadrumb {
    font-family: 宋体,Arial;
    font-size:14px;
    color:#333333;
    font-weight:bold;
    height:25px;
    line-height:25px;
    text-align:right;
    margin-right:30px;

}


.pageHeader {
    font-family: 宋体,Arial;
    font-size:14px;
    font-weight:bold;
    color:#ffffff;
    background-color:#0a1b50;
    text-indent:16px;
    height:20px;
    line-height:20px;
    width:620px;
    margin-left:180px;
}

.divCenter {
    width:800px;
    margin:0 auto;
    min-height:400px;
}

.leftMenu {
    float:left;
    width:180px;
    height:auto;
}

.menuLinks {
    font-family: 宋体,Arial;
    font-size:15px;
    color:#333333;
    font-weight:bold;
    width:150px;
    height:35px;
    padding-left:20px;
    border-bottom:1px dotted #999999;
}


.mainContent {
    float:right;
    background-color:white;
    width:620px;
}

.footer {
    font-family:Arial,Helvetica,sans-serif;
    font-size:13px;
    text-transform:uppercase;
    color:#ffffff;
    background-color:#abaf94;
    padding-left:18px;
    line-height:18px;
}



.dottedLine {
    background-image:url("../../Comm_Images/dotten-line.gif");
    background-repeat:repeat-x;
    background-position:bottom;
    height:8px;
}

.mainNavigation {
    font-family:Arial,Helvetica,sans-serif;
    font-size:0.7em;
    text-transform:uppercase;
    padding-left:2px;
    color:#333333;
    font-weight:bold;
    line-height:20px;
    padding-right:5px;
    display:block;
    height:100%;
}




/****SignIn.aspx************/
.signinPosition {
    width:400px;
    height:200px;
    margin:0 auto;
    
}


.signinHeader {
    font-family:Arial,Helvetica,sans-serif;
    font-size:16px;
    font-weight:bold;
    text-align:left;
    white-space:nowrap;
    color:#333333;
    padding-top:5px;
    padding-bottom:5px;
    line-height:30px;
}

.signinLabel {
    font-family:Arial,Helvetica,sans-serif;
    font-weight:normal;
    color:#333333;
    font-size:15px;
    margin-top:5px;
}

.signinTextbox {
    font-size:15px;
    color:#000000;
    text-indent:3px;
    background-color:#eae9e4;
    border-width:1px;
    border-style:solid;
    border-top-color:#c6c3b3;
    border-right-color:#7c7d6a;
    border-bottom-color:#000000;
    border-left-color:#7c7d6a;
    height:20px;
    line-height:20px;
    margin-right:2px;
    margin-left:30px;
    margin-top:5px;
}

.ErrorLabel {
    font-family:Arial,Helvetica,sans-serif;
    font-weight:bold;
    color:#cc3300;
    font-size:15px;
    margin-bottom:30px;
    margin-left:100px;
}



.signinButton {
    font-family:Tahoma,Arial,Helvetica,sans-serif;
    background-color:#fb9d00;
    font-size:15px;
    color:#ffffff;
    font-weight:bold;
    cursor:pointer;
    border: 1px solid;
    border-bottom-color:#f07c00;
    border-top-color:#ffcc00;
    border-right-color:#f07c00;
    border-left-color:#ffcc00;
    padding-left:5px;
    padding-right:5px;
    margin-left:150px;
    margin-top:10px;
}

.linkNewUser {
    font-family:Arial,Helvetica,sans-serif;
    font-size:14px;
    color:#33333;
    text-indent:3px;
}

.signInContent {
    font-family:Arial,Helvetica,sans-serif;
    font-size:0.8em;
    background-color:#ffffff;
    white-space:nowrap;
    color:#333333;
    padding-top:10px;
    padding-bottom:10px;
}

.welcomeName {
    font-size:0.7em;
    font-weight:bold;
    white-space:nowrap;
    text-indent:37px;
    color:#555555;
    font-family:Arial,Helvetica,sans-serif;
}

/***********NewUser.aspx**************/
.signinNewUser {
    font-family:Arial,Helvetica,sans-serif;
    font-size:0.8em;
    text-transform:uppercase;
    color:#333333;
}

/************UserProfile.aspx**************/
.profilePostition {
    position:relative;
    width:360px;
    top:0;
    left:0;
    margin:0 auto;
    vertical-align:top;
}

.info {
    font-family:Arial,Helvetica,sans-serif;
    font-size:0.8em;
    color:#333333;
    margin-bottom:15px;
    text-align:left;
}

/***************Products.aspx*******************/
.divLeft {
    float:left;
    width:145px;
    height:145px;
    border:2px solid #555555;
    margin-left:10px;
    text-align:center;
    margin-top:10px;
    margin-bottom:10px;
}

.divLeft img {
    width:138px;
    height:138px;
    border:2px solid #cccccc;
    padding:2px;
}

.divRight {
    float:left;
    width:120px;
    height:145px;
    margin-left:8px;
    margin-top:10px;
    margin-bottom:10px;
}

.productName {
    font-family:Arial,Helvetica,sans-serif;
    font-size:16px;
    font-weight:bold;
    color:#333333;
    margin-top:3px;
    padding-left:2px;
    padding-bottom:8px;
}

.productDescription {
    font-family:Arial,Helvetica,sans-serif;
    font-size:12px;
    font-weight:normal;
    color:#333333;
    padding-left:2px;
    padding-bottom:8px;
}

.itemText {
    font-family:Arial,Helvetical,sans-serif;
    font-size:13px;
    font-weight:normal;
    line-height:30px;
    width:100%;
    height:30px;
}

.itemText #imgCart {
    width:20px;
    height:20px;
    border-width:0;
    float:left;
    margin-left:20px;
    margin-top:6px;
}

.linkCart {
    font-family:Arial,Helvetical,sans-serif;
    font-size:14px;
    font-weight:bold;
    cursor:pointer;
    line-height:28px;
    margin-top:3px;
    margin-left:4px;
    float:left;
}



.itemText #imgWishList {
    width:20px;
    height:20px;
    border-width:0;
    float:left;
    margin-left:20px;
    margin-top:6px;
}

.linkWishlist {
    font-family:Arial,Helvetical,sans-serif;
    font-size:14px;
    font-weight:bold;
    cursor:pointer;
    line-height:28px;
    margin-top:3px;
    margin-left:4px;
    float:left;
}



/*********ShoppingCart.aspx*************************/
.cartPosition {
    position:relative;
    width:400px;
    top:0;
    left:0;
    margin:0 auto;
    vertical-align:top;
    padding-top:50px;
    padding-bottom:33px;
}

.linkCheckOut {
    font-family:Arial,Helvetica,sans-serif;
    font-size:0.65em;
    text-transform:uppercase;
    color:#333333;
    text-indent:7px;
}

.cartHeader {
    font-family:Arial,Helvetica,sans-serif;
    font-size:0.9em;
    text-align:center;
    white-space:nowrap;
    color:#333333;
    width:387px;
    padding-bottom:16px;
}

.labelLists {
    font-family:Tahoma,Arial,Helvetica,sans-serif;
    font-size:0.7em;
    font-weight:bold;
    color:#747c6d;
    vertical-align:bottom;
    background-image:url("../../Comm_Images/bg-labelLists.gif");
    text-align:left;
    line-height:21px;
    padding-left:5px;
    text-indent:2px;
    padding-right:5px;
    padding-top:8px;
    padding-bottom:1px;
    border-bottom-color:#ffffff;
    border-bottom-style:solid;
}

.listItem {
    font-family:Tahoma,Arial,Helvetica,sans-serif;
    font-size:0.7em;
    color:#3333333;
    text-decoration:none;
    line-height:15px;
    padding-left:5px;
    padding-right:5px;
    padding-bottom:2px;
    padding-top:2px;
    white-space:nowrap;
    text-align:left;
    background-color:#e8eadd;

}


.dottedLineCentered {
    background-image:url("../../Comm_Images/dotten-line.gif");
    background-repeat:repeat-x;
    background-position:center;
    height:8px;
    width:400px;
}

.total {
    font-family:Arial,Helvetica,sans-serif;
    font-size:0.7em;
    font-weight:bold;
    color:#000000;
    padding-top:10px;
    padding-right:30px;
    line-height:1.5em;
    text-align:right;
}


.otherCon {
    width:400px;
    text-align:right;
    margin-top:20px;
}

/**************CheckOut.aspx************************/
.checkoutContent {
    font-family:Arial,Helvetica,sans-serif;
    background-color:#ffffff;
    white-space:nowrap;
    color:#333333;
    width:270px;
    padding-left:150px;
    padding-top:20px;
    padding-bottom:33px;
}

.checkoutHeaders {
    font-family:Arial,Helvetica,sans-serif;
    font-size:0.9em;
    font-weight:bold;
    color:#333333;
    text-transform:capitalize;
    white-space:nowrap;
    height:30px;
    padding-top:3px;
    padding-bottom:5px;
}

.checkoutButtonBg {
    text-align:right;
    width:336px;
}

.continue {
    font-family:Tahoma,Arial,Helvetica,sans-serif;
    font-size:0.7em;
    color:#000000;
    text-decoration:none;
    font-weight:bold;
    background-image:url("../../Comm_Images/button-continue.gif");
    background-repeat:no-repeat;
    background-position:right 7px;
    padding-right:22px;
    padding-top:9px;
    margin-right:7px;
    cursor:pointer;
    line-height:40px;
}

.submit {
    font-family:Tahoma,Arial,Helvetica,sans-serif;
    background-color:#fb9d00;
    font-size:0.7em;
    color:#ffffff;
    text-decoration:none;
    font-weight:bold;
    cursor:pointer;
    line-height:30px;
    border:1px solid;
    border-bottom-color:#f07c00;
    border-top-color:#ffcc00;
    border-right-color:#f07c00;
    border-left-color:#ffcc00;
    padding-right:10px;
    padding-left:10px;
    padding-top:1px;
    padding-bottom:1px;
}

.checkOutLabel {
    font-family:Arial,Helvetica,sans-serif;
    font-size:0.7em;
    color:#333333;
    margin-left:3px;
    margin-bottom:10px;
    text-align:left;
}

.back {
    font-family:Tahoma,Arial,Helvetica,sans-serif;
    font-size:0.7em;
    color:#000000;
    text-decoration:none;
    font-weight:bold;
    background-image:url("../../Comm_Images/button-back.gif");
    background-repeat:no-repeat;
    background-position:left 7px;
    padding-left:22px;
    padding-top:9px;
    margin-left:7px;
    cursor:pointer;
    line-height:40px;
}

.checkoutTextbox {
    font-size:1em;
    color:#000000;
    text-indent:3px;
    background-color:#eae9e4;
    border-width:1px;
    border-style:solid;
    border-top-color:#c6c3b3;
    border-right-color:#7c7d6a;
    border-bottom-color:#000000;
    border-left-color:#7c7d6a;
    height:16px;
    margin-top:1px;
}

.checkoutDropdown {
    font-size:1em;
    color:#000000;
    text-indent:3px;
    background-color:#eae9e4;
    border-width:1px;
    border-style:solid;
    border-top-color:#c6c3b3;
    border-right-color:#7c7d6a;
    border-bottom-color:#000000;
    height:20px;
    margin-top:2px;
}






创建数据库

sql

CREATE DATABASE netPetShop;

use netPetShop;

--用户表
CREATE TABLE account(
	user_name nvarchar(256) not null,
	user_pwd nvarchar(16)  not null,
	cname nvarchar(80) null,
	country nvarchar(80) null,
	province nvarchar(80) null,
	city nvarchar(80) null,
	address nvarchar(80) null,
	zip_code nvarchar(80) null,
	phone nvarchar(80) null,
	email nvarchar(80) null,
	primary key(user_name)
);


--宠物分类表
CREATE TABLE category(
	category_id nvarchar(50) not null,
	name nvarchar(80) not null,
	descn nvarchar(255) null,
	primary key(category_id)
);


--宠物表
CREATE TABLE product(
	product_id nvarchar(50) not null,
	category_id nvarchar(50) not null,
	name nvarchar(80) not null,
	descn nvarchar(255) not null,
	pro_image nvarchar(80) not null,
	list_price decimal(18,2) not null,
	primary key(product_id)
);


--购物车
CREATE TABLE cart(
	user_name nvarchar(256) not null,
	product_id nvarchar(50) not null,
	name nvarchar(80) not null,
	list_price decimal(18,2) not null,
	category_id nvarchar(50) not null,
	quantity int not null,
	primary key(user_name,product_id)
);

--订单表
CREATE TABLE orders(
	order_id int not null identity(1,1),
	user_name nvarchar(256) not null,
	order_date datetime not null,
	primary key(order_id)
);



--订单明细表
CREATE TABLE orderlineitem(
	item_id int not null identity(1,1),
	order_id int not null,
	product_id nvarchar(50) not null,
	quantity int not null,
	list_price decimal(18,2) not null,
	primary key(item_id)
);

insert into category values('BACKYARD','大型动物','大型动物');
insert into category values('BIRDS','鸟类','鸟类');
insert into category values('BUGS','昆虫','昆虫');
insert into category values('FISH','鱼类','鱼类');

insert into product values('BD-01','BIRDS','塘鹅','动静皆宜','~/Prod_Images/Birds/icon-pelican.gif',86);
insert into product values('BD-02','BIRDS','企鹅','形态可掬','~/Prod_Images/Birds/icon-penguin.gif',130);
insert into product values('BD-03','BIRDS','翼龙','亿年前的空中霸主','~/Prod_Images/Birds/icon-pteranodon.gif',2100);
insert into product values('BD-04','BIRDS','猫头鹰','日夜守候','~/Prod_Images/Birds/icon-owl.gif',40);
insert into product values('BD-05','BIRDS','鸭子','口齿不清但歌声美妙','~/Prod_Images/Birds/icon-duck.gif',32);
insert into product values('BG-01','BUGS','蚂蚁','搬运工','~/Prod_Images/Bugs/icon-ant.gif',2);
insert into product values('BG-02','BUGS','蝴蝶','越大越美','~/Prod_Images/Bugs/icon-butterfly.gif',8);
insert into product values('BG-03','BUGS','蜘蛛','冷酷美','~/Prod_Images/Bugs/icon-spider.gif',5);
insert into product values('BG-04','BUGS','蜗牛','你的柔软伙伴','~/Prod_Images/Bugs/icon-slug.gif',7);
insert into product values('BG-05','BUGS','青蛙','想灭蚊吗','~/Prod_Images/Bugs/icon-frog.gif',12);
insert into product values('BG-06','BUGS','蜻蜓','精致的宠物','~/Prod_Images/Bugs/icon-dragonfly.gif',3);
insert into product values('BY-01','BACKYARD','绵羊','软绵绵的拥抱','~/Prod_Images/Backyard/icon-sheep.gif',120);
insert into product values('BY-02','BACKYARD','猫','多情而敏感','~/Prod_Images/Backyard/icon-cat.gif',80);
insert into product values('BY-03','BACKYARD','浣熊','胃口不错','~/Prod_Images/Backyard/icon-raccoon.gif',240);
insert into product values('BY-04','BACKYARD','鹅','曲项向天歌','~/Prod_Images/Backyard/icon-goose.gif',45);
insert into product values('BY-05','BACKYARD','巨蟹','冰箱里出现','~/Prod_Images/Backyard/icon-crad.gif',28);
insert into product values('BY-06','BACKYARD','臭鼬','味道比较浓厚','~/Prod_Images/Backyard/icon-skunk.gif',98);
insert into product values('BY-07','BACKYARD','斑马','摩登的美女','~/Prod_Images/Backyard/icon-zebra.gif',820);
insert into product values('FI-01','FISH','丑鱼','海底总动员','~/Prod_Images/Fish/icon-meno.gif',20);
insert into product values('FI-02','FISH','河豚','温度越高,身体越大','~/Prod_Images/Fish/icon-ballonfish.gif',18);
insert into product values('FI-03','FISH','盲鱼','视觉退化','~/Prod_Images/Fish/icon-blindfish.gif',34);
insert into product values('FI-04','FISH','海蟹','喂食时会跳舞','~/Prod_Images/Fish/icon-cradfish.gif',16);
insert into product values('FI-05','FISH','章鱼','给你按摩','~/Prod_Images/Fish/icon-eucalyptus.gif',27);
insert into product values('FI-07','FISH','鲨鱼','小心咬你','~/Prod_Images/Fish/icon-nosyfish.gif',360);
insert into product values('FI-08','FISH','巨齿鱼','素食动物','~/Prod_Images/Fish/icon-toothferry.gif',280);



创建首页

default1.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default1.aspx.cs" Inherits="dynamicweb11_1.Default1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>欢迎来到.NET宠物商店</title>
<!--
代码编写:虾米大王
邮箱:modern358@163.com
完成日期:2021年4月10日
-->
</head>
<body class="homeBody">
    <form id="form1" runat="server">
        <!--主页头内容-->    
        <div class="divHome">
            <div id="logoH">.NET PET SHOP</div>
            <!--搜索-->
            <div class="homeBgSearch">
                <asp:TextBox ID="txtSearch" runat="server" CssClass="homeSearchBox"></asp:TextBox>
                <asp:ImageButton ID="btnSearch" runat="server" CssClass="paddingSearchicon" ImageUrl="Comm_Images/button-search.gif" OnClick="btnSearch_Click" />
                <!--登录退出--->
                <asp:LinkButton ID="btnLgnStatus" runat="server" CssClass="homeLink" Text="登录" OnClick="btnLgnStatus_Click"></asp:LinkButton>
            </div>
        </div>
        <div class="homeL"></div>
        <!--主页主体内容-->
        <div class="divContent">
            <div id="leftH">
                <div id="seahorse">
                    <img height="280" src="Comm_Images/seahorse.png" width="112" alt="sea Horse" />
                </div>
                <div id="mainContent">
                    <div class="welcome">欢迎来到动物世界</div>
                    <div class="bgControl">
                        <div class="intro">从我们精选的宠物中挑选你的最爱吧</div>
                        <div class="navigationLabel">宠物分类:</div>
                        <div class="ctMenu">
                            <!--宠物分类菜单-->
                            <asp:DataList ID="dlCategories" runat="server" DataKeyField="category_id" DataSourceID="sdsCategory">
                                <ItemTemplate>
                                    <div class="navigationLinks">
                                        <!--.NET的数据绑定分为单向绑定和双向绑定。Eval("字段名")为单向只读绑定,只获取字段数据。Bind("字段名")为双向绑定,可把控件上的数据更新到数据源中,用于编辑。-->
                                        <asp:HyperLink ID="lnkCategory" runat="server" NavigateUrl='<%# string.Format("~/Products1.aspx?categoryId={0}&name={1}",Eval("category_id"),Eval("name")) %>' Text='<%# Eval("name") %>'></asp:HyperLink>
                                    </div>
                                    <br />
                                    <br />
                                </ItemTemplate>
                            </asp:DataList>
                            <asp:SqlDataSource ID="sdsCategory" runat="server" ConnectionString="<%$ ConnectionStrings:cnPetShop %>" SelectCommand="SELECT [category_id], [name] FROM [category]"></asp:SqlDataSource>
                        </div>
                        <div class="footerHome">Powered by .NET 4.6</div>
                    </div>
                </div>
            </div>
            <div class="fishPosition">
                <img  src="Comm_Images/home-fish.png" border="0"/>
            </div>
        </div>
    </form>
</body>
</html>

default1.aspx.cs

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

代码编写:虾米大王
邮箱:modern358@163.com
完成日期:2021年4月10日
 
******************************/
namespace dynamicweb11_1
{
    public partial class Default1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void btnSearch_Click(object sender, ImageClickEventArgs e)
        {
            if (!String.IsNullOrEmpty(txtSearch.Text))
            { 
                Response.Redirect("~/Search.aspx?keywords=" + txtSearch.Text);
            }
            
        }

        protected void btnLgnStatus_Click(object sender, EventArgs e)
        {
            Response.Redirect("SignIn1.aspx");
        }
    }
}

创建母版页

masterpage1.master

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="MasterPage1.master.cs" Inherits="dynamicweb11_1.MasterPage1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>.NET宠物商店</title>
<!--
代码编写:虾米大王
邮箱:modern358@163.com
完成日期:2021年4月10日
-->
</head>
<body>
        <form id="form1" runat="server">
        <!--母版页头部内容-->
        <div class="divMaster">
            <div class="divLogoM">
                <a href="Default1.aspx">.NET PET SHOP</a>
            </div>
            <div class="signIn">
                <asp:TextBox ID="txtSearch" runat="server" CssClass="textboxSearch"></asp:TextBox>
                <asp:ImageButton ID="btnSearch" runat="server" AlternateText="Search" CausesValidation="false" ImageUrl="Comm_Images/button-search.gif" OnClick="btnSearch_Click"/>
                <!--我的资料-->
                <asp:HyperLink ID="hlProfile" runat="server" NavigateUrl="UserProfile1.aspx" CssClass="link">我的资料</asp:HyperLink>
                <!--登录/退出-->
                <asp:LinkButton ID="btnLgnStatus" runat="server" Text="登录" OnClick="btnLgnStatus_Click" CausesValidation="False"></asp:LinkButton>
                <div class="checkOut">
                    <a href="ShoppingCart1.aspx"><img border="0" src="Comm_Images/button-cart.jpg"/></a>
                    <a href="ShoppingCart1.aspx" class="checkOutLink">购物车</a>
                </div>
            </div>
        </div>

        <!--母版页主体内容-->
        <div class="divTitle">
            <div class="breadrumb">
                <!--显示用户名欢迎信息-->
                <asp:Literal ID="ltlName" runat="server" Text="欢迎,访客"></asp:Literal>
            </div>
            <div class="pageHeader">
                <!--网页内标题-->
                <asp:Literal ID="ltlHeader" runat="server"></asp:Literal>
            </div>
        </div>
        <div class="divCenter">
            <div class="leftMenu">&nbsp;
                <!--宠物分类菜单-->
                <asp:DataList ID="dlCategory" runat="server" DataKeyField="category_id" DataSourceID="sdsCategory">
                    <ItemTemplate>
                        <div class="menuLinks">
                            <asp:HyperLink ID="lnkCategory" runat="server" NavigateUrl='<%# string.Format("~/Products1.aspx?categoryId={0}&name={1}",Eval("category_id"),Eval("name")) %>' Text='<%# Eval("name") %>'></asp:HyperLink>
                        </div>
                        <br />
                    </ItemTemplate>
                </asp:DataList>
                <asp:SqlDataSource ID="sdsCategory" runat="server" ConnectionString="<%$ ConnectionStrings:cnPetShop %>" SelectCommand="SELECT [category_id], [name] FROM [category]"></asp:SqlDataSource>
            </div>
            <div class="mainContent">
                <!--占位符-->
                <asp:ContentPlaceHolder ID="cphPage" runat="server">

                </asp:ContentPlaceHolder>
                <div class="footer">powered by .net 4.6</div>
            </div>
            
        </div>
        
    </form>
</body>
</html>

masterpage1.master.cs

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

代码编写:虾米大王
邮箱:modern358@163.com
完成日期:2021年4月10日
 
******************************/
namespace dynamicweb11_1
{
    public partial class MasterPage1 : System.Web.UI.MasterPage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            ltlHeader.Text = Page.Header.Title;
            Page.UnobtrusiveValidationMode = UnobtrusiveValidationMode.None;
            if (Session["UserName"] != null)
            {
                ltlName.Text = "欢迎," + Session["UserName"].ToString();
                btnLgnStatus.Text = "退出";
            }
            else
            {
                btnLgnStatus.Text = "登录";
            }
        }

        protected void btnSearch_Click(object sender, ImageClickEventArgs e)
        {
            if (!String.IsNullOrEmpty(txtSearch.Text))
            {
                Response.Redirect("~/Search.aspx?keywords=" + txtSearch.Text);
            }
        }

        protected void btnLgnStatus_Click(object sender, EventArgs e)
        {
            if (Session["UserName"] == null)
            {
                Response.Redirect("~/SignIn1.aspx");
            }
            else
            {
                Session["UserName"] = null;
                Response.Redirect("~/SignIn1.aspx");
            }
        }
    }
}

创建内容页

signin1.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SignIn1.aspx.cs" Inherits="dynamicweb11_1.SignIn1" MasterPageFile="~/MasterPage1.Master" %>
<asp:Content runat="server" ContentPlaceHolderID="cphPage">
<!--
代码编写:虾米大王
邮箱:modern358@163.com
完成日期:2021年4月10日
-->
    <div class="signinPosition">
        <div class="signinHeader">用户登录</div>
        <table>
            <tr>
                <td class="signinLabel">用户名:</td>
                <td>
                    <asp:TextBox ID="txtName" runat="server" CssClass="signinTextbox" Width="155px"></asp:TextBox>
                    <asp:RequiredFieldValidator ID="UserNameRequired" runat="server" ControlToValidate="txtName" ErrorMessage="填写用户名" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>
                </td>
            </tr>
            <tr>
                <td class="signinLabel">密码:</td>
                <td>
                    <asp:TextBox ID="txtPassword" runat="server" CssClass="signinTextbox" TextMode="Password" Width="155px"></asp:TextBox>
                    <asp:RequiredFieldValidator ID="PasswordRequired" runat="server" ControlToValidate="txtPassword" ErrorMessage="填写密码" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>
                </td>
            </tr>
        </table>
        <asp:CheckBox ID="chkRememberMe" runat="server" Text="记住我" Font-Size="Small" />
        <asp:Button ID="btnSubmit" runat="server" CssClass="signinButton" Text="登录" OnClick="btnSubmit_Click" /><br />
        <asp:Label ID="lblError" runat="server" CssClass="ErrorLabel" Text=""></asp:Label><br />
        <asp:HyperLink ID="hlNewUser" runat="server" CssClass="linkNewUser" NavigateUrl="~/NewUser1.aspx">注册新用户</asp:HyperLink>
    </div>
</asp:Content>

signin1.aspx.cs

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

代码编写:虾米大王
邮箱:modern358@163.com
完成日期:2021年4月10日
 
******************************/
namespace dynamicweb11_1
{
    public partial class SignIn1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                if (Request.Cookies["UserName"] != null)
                {
                    txtName.Text = Request.Cookies["UserName"].Value;
                }
            }
        }

        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            string conString = System.Configuration.ConfigurationManager.ConnectionStrings["cnPetShop"].ToString();
            System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection(conString);
            con.Open();
            string sql = "select * from account where user_name=@uName and user_pwd=@uPwd";
            System.Data.SqlClient.SqlCommand cmd  = new System.Data.SqlClient.SqlCommand(sql,con);
            cmd.Parameters.AddWithValue("@uName",txtName.Text);
            cmd.Parameters.AddWithValue("@uPwd",txtPassword.Text);
            System.Data.SqlClient.SqlDataReader reader = cmd.ExecuteReader();
            if(reader.HasRows)
            {
                if (chkRememberMe.Checked == true)
                {
                    Response.Cookies["UserName"].Value = txtName.Text;
                    //Response.Cookies["UserName"].Expires = DateTime.Now.AddDays("7");
                    Response.Cookies["UserName"].Expires = DateTime.Now.AddMinutes(2);
                }
                Session["UserName"] = txtName.Text;
                if(Request.QueryString["from"] == null)
                {
                    Response.Redirect("~/Products1.aspx?categoryId=BACKYARD");
                }
                else
                {
                    Response.Redirect(Request.QueryString["from"]);
                }
            }
            else
            {
                lblError.Text = "用户名或密码错误";
            }

            reader.Close();
            con.Close();
        }
    }
}

newuser1.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="NewUser1.aspx.cs" Inherits="dynamicweb11_1.NewUser1" MasterPageFile="~/MasterPage1.Master" %>
<asp:Content runat="server" ContentPlaceHolderID="cphPage">
<!--
代码编写:虾米大王
邮箱:modern358@163.com
完成日期:2021年4月10日
-->
    <div class="signinPosition">
        <asp:Panel ID="plRegister" runat="server">
            <div class="signinHeader">
               注册新用户
            </div>
            <table>
                <tr>
                    <td class="signinLabel">用户名:</td>
                    <td>
                        <asp:TextBox ID="txtName" runat="server" CssClass="signinTextbox" Width="155px"></asp:TextBox>
                        <asp:RequiredFieldValidator ID="UserNameRequired" runat="server" ControlToValidate="txtName" ErrorMessage="请填写用户名" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>
                        <asp:Label ID="lblError" runat="server" Text=""></asp:Label>
                    </td>
                </tr>
                <tr>
                    <td class="signinLabel">密码:</td>
                    <td>
                        <asp:TextBox ID="txtPassword" runat="server" CssClass="signinTextbox" TextMode="Password" Width="155px"></asp:TextBox>
                        <asp:RequiredFieldValidator ID="PasswordRequired" runat="server" ControlToValidate="txtPassword" ErrorMessage="请填写密码" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>
                    </td>
                </tr>
                 <tr>
                    <td class="signinLabel">确认密码:</td>
                    <td>
                        <asp:TextBox ID="txtConfirmPwd" runat="server" CssClass="signinTextbox" TextMode="Password" Width="155px"></asp:TextBox>
                        <asp:RequiredFieldValidator ID="ConfirmPwdRequired" runat="server" ControlToValidate="txtConfirmPwd" ErrorMessage="请填写确认密码" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>
                        <asp:CompareValidator ID="PwdCompare" runat="server" ControlToCompare="txtPassword" ControlToValidate="txtConfirmPwd" ErrorMessage="两次密码填写不一致" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:CompareValidator>
                    </td>
                </tr>
            </table>
            <asp:Button ID="btnSubmit" runat="server" CssClass="signinButton" Text="注册" OnClick="btnSubmit_Click" />
        </asp:Panel>
        <asp:Panel ID="plSuccess" runat="server" Visible="false">
            <p class="signinLabel"><br /><strong>感谢你的注册。</strong></p>
            <p class="signinLabel">用户创建成功,现在你可以:</p>
            <p class="signinLabel"><a class="signinNewUser" href="Products1.aspx?categoryId=BACKYARD">继续选购</a></p>
            <p class="signinLabel"><a class="signinNewUser" href="ShoppingCart1.aspx">购物车</a></p>
            <p class="signinLabel"><a class="signinNewUser" href="UserProfile1.aspx">变更你的资料</a></p>
        </asp:Panel>
    </div>
</asp:Content>

newuser1.aspx.cs

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

代码编写:虾米大王
邮箱:modern358@163.com
完成日期:2021年4月10日
 
******************************/
namespace dynamicweb11_1
{
    public partial class NewUser1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            string conString = System.Configuration.ConfigurationManager.ConnectionStrings["cnPetShop"].ToString();
            System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection(conString);
            con.Open();

            string sqlSelect = "select * from account where user_name=@uName";
            System.Data.SqlClient.SqlCommand cmdSelect = new System.Data.SqlClient.SqlCommand(sqlSelect, con);
            cmdSelect.Parameters.AddWithValue("@uName",txtName.Text);
            System.Data.SqlClient.SqlDataReader reader = cmdSelect.ExecuteReader();

            if (reader.HasRows)
            {
                lblError.Text = "此用户已存在";
                reader.Close();
            }
            else
            {
                reader.Close();
                string sqlInsert = "insert into account(user_name,user_pwd) values(@uName,@uPwd)";
                System.Data.SqlClient.SqlCommand cmdInsert = new System.Data.SqlClient.SqlCommand(sqlInsert, con);
                cmdInsert.Parameters.AddWithValue("@uName",txtName.Text);
                cmdInsert.Parameters.AddWithValue("@uPwd",txtPassword.Text);
                cmdInsert.ExecuteNonQuery();
                plRegister.Visible = false;
                plSuccess.Visible = true;
            }

            con.Close();
        }
    }
}

checkout1.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CheckOut1.aspx.cs" Inherits="dynamicweb11_1.CheckOut1" MasterPageFile="~/MasterPage1.Master" %>
<asp:Content runat="server" ContentPlaceHolderID="cphPage">
<!--
代码编写:虾米大王
邮箱:modern358@163.com
完成日期:2021年4月10日
-->
    <div class="checkoutContent">
        <!--提交订单区域-->
        <asp:Panel ID="panForm" runat="server">
            <div class="cartHeader">
                订购商品
            </div>
            <!---订购商品列表-->
            <asp:SqlDataSource ID="sdsCart" runat="server" ConnectionString="<%$ ConnectionStrings:cnPetShop %>" SelectCommand="SELECT * FROM [cart] WHERE user_name=@uName" OnSelecting="sdsCart_Selecting">
                <SelectParameters>
                    <asp:Parameter Name="uName" Type="String"/>
                </SelectParameters>
            </asp:SqlDataSource>
            <asp:GridView ID="gvCart" runat="server" AutoGenerateColumns="False" CellPadding="4" DataKeyNames="user_name,product_id" DataSourceID="sdsCart" EmptyDataText="购物车中没有商品" Width="400px" ForeColor="#333333" GridLines="None" OnRowDataBound="gvCart_RowDataBound">
                <AlternatingRowStyle BackColor="White" />
                <Columns>
                    <asp:BoundField DataField="name" HeaderText="名称" SortExpression="name" >
                    <ItemStyle Width="170px" />
                    </asp:BoundField>
                    <asp:BoundField DataField="quantity" HeaderText="数量" SortExpression="quantity">
                    <ItemStyle HorizontalAlign="Center" Width="40px" />
                    </asp:BoundField>
                    <asp:BoundField DataField="list_price" DataFormatString="{0:C}" HeaderText="单价" SortExpression="list_price">
                    <ItemStyle HorizontalAlign="Center" Width="40px" />
                    </asp:BoundField>
                </Columns>
                <EditRowStyle BackColor="#2461BF" />
                <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
                <HeaderStyle CssClass="labelLists" BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
                <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
                <RowStyle CssClass="listItem" Height="30px" Width="250px" BackColor="#EFF3FB" />
                <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
                <SortedAscendingCellStyle BackColor="#F5F7FB" />
                <SortedAscendingHeaderStyle BackColor="#6D95E1" />
                <SortedDescendingCellStyle BackColor="#E9EBEF" />
                <SortedDescendingHeaderStyle BackColor="#4870BE" />
            </asp:GridView>
            <!--订购商品金额总计-->
            <div class="total">
                <asp:Literal ID="ltlTotal" runat="server"></asp:Literal>
            </div>
            <!--个人资料信息-->
            <asp:SqlDataSource ID="sdsAccount" runat="server" ConnectionString="<%$ ConnectionStrings:cnPetShop %>" SelectCommand="SELECT * FROM [account] WHERE user_name=@uName" OnSelecting="sdsAccount_Selecting" UpdateCommand="UPDATE [account] SET [cname] = @cname, [country] = @country, [province] = @province, [city] = @city, [address] = @address, [zip_code] = @zip_code, [phone] = @phone, [email] = @email WHERE [user_name] = @user_name">
                <SelectParameters>
                    <asp:Parameter  Name="uName" Type="String"/>
                </SelectParameters>
                <UpdateParameters>
                    <asp:Parameter Name="cname" Type="String" />
                    <asp:Parameter Name="country" Type="String" />
                    <asp:Parameter Name="province" Type="String" />
                    <asp:Parameter Name="city" Type="String" />
                    <asp:Parameter Name="address" Type="String" />
                    <asp:Parameter Name="zip_code" Type="String" />
                    <asp:Parameter Name="phone" Type="String" />
                    <asp:Parameter Name="email" Type="String" />
                    <asp:Parameter Name="user_name" Type="String" />
                </UpdateParameters>
            </asp:SqlDataSource>
            <asp:FormView ID="fvAccount" runat="server" DataSourceID="sdsAccount" DefaultMode="Edit" DataKeyNames="user_name" OnItemUpdated="fvAccount_ItemUpdated">
                <EditItemTemplate>
                <table style="border-bottom:1px dotted #555555;border-spacing:0;padding:0;border-collapse:collapse;">
                    <tr>
                        <td class="label" width="50%" style="height:50px;">
                            姓名:<br />
                            <asp:TextBox ID="txtCname" runat="server" Text='<%# Bind("cname") %>' CssClass="checkoutTextbox" MaxLength="80" Width="155px"></asp:TextBox><br />
                            <asp:RequiredFieldValidator ID="valFirstName" runat="server" ControlToValidate="txtCname" ErrorMessage="输入姓名" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>
                        </td>
                        <td class="label" width="40%">&nbsp;</td>
                    </tr>
                    <tr>
                        <td class="label" style="height:50px;">
                            国家:<br />
                            <asp:TextBox ID="txtCountry" runat="server" Text='<%# Bind("country") %>' CssClass="checkoutTextbox" MaxLength="80" Width="155px"></asp:TextBox><br />
                            <asp:RequiredFieldValidator ID="valCountry" runat="server" ControlToValidate="txtCountry" ErrorMessage="输入国家" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>
                        </td>
                        <td class="label">
                            省:<br />
                            <asp:TextBox ID="txtProvince" runat="server" Text='<%# Bind("province") %>' CssClass="checkoutTextbox" MaxLength="80" Width="155px"></asp:TextBox><br />
                            <asp:RequiredFieldValidator ID="valProvince" runat="server" ControlToValidate="txtProvince" ErrorMessage="输入省份" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>
                        </td>
                    </tr>
                    <tr>
                        <td class="label" style="height:50px;">
                            城市:<br />
                            <asp:TextBox ID="txtCity" runat="server" Text='<%# Bind("city") %>' CssClass="checkoutTextbox" MaxLength="80" Width="155px"></asp:TextBox><br />
                            <asp:RequiredFieldValidator ID="valCity" runat="server" ControlToValidate="txtCity" ErrorMessage="输入城市" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>
                        </td>
                        <td class="label" style="height:50px;">
                            邮编:<br />
                            <asp:TextBox ID="txtZipcode" runat="server" Text='<%# Bind("zip_code") %>' CssClass="checkoutTextbox" MaxLength="80" Width="80px"></asp:TextBox><br />
                            <asp:RequiredFieldValidator ID="valZipcode" runat="server" ControlToValidate="txtZipcode" ErrorMessage="输入邮编" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>
                        </td>
                    </tr>
                    <tr>
                        <td class="label" colspan="2" style="height:50px;">
                            地址:<br />
                            <asp:TextBox ID="txtAddress" runat="server" Text='<%# Bind("address") %>' CssClass="checkoutTextbox" MaxLength="80" Width="330px"></asp:TextBox><br />
                            <asp:RequiredFieldValidator ID="valAddress" runat="server" ControlToValidate="txtAddress" ErrorMessage="输入地址" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>
                        </td>
                    </tr>
                    <tr>
                        <td class="label" colspan="2" style="height:50px;">
                            电话:<br />
                            <asp:TextBox ID="txtPhone" runat="server" Text='<%# Bind("phone") %>' CssClass="checkoutTextbox" MaxLength="80" Width="155px"></asp:TextBox><br />
                            <asp:RequiredFieldValidator ID="valPhone" runat="server" ControlToValidate="txtPhone" ErrorMessage="输入电话" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>
                        </td>
                    </tr>
                    <tr>
                        <td class="label" colspan="2" style="height:70px;" valign="top">
                            电子邮箱:<br />
                            <asp:TextBox ID="txtEmail" runat="server" Text='<%# Bind("email") %>' CssClass="checkoutTextbox" MaxLength="80" Width="330px"></asp:TextBox><br />
                            <asp:RequiredFieldValidator ID="valEmail" runat="server" ControlToValidate="txtEmail" ErrorMessage="输入电子邮件" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>
                            <asp:RegularExpressionValidator ID="valEmail1" ControlToValidate="txtEmail" runat="server" ErrorMessage="无效的Email地址" Display="Dynamic" Font-Size="Small" ForeColor="Red" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>
                        </td>
                    </tr>
                </table>
                <div class="checkoutButtonBg">
                    <!--提交更新的命令按钮-->
                    <asp:LinkButton ID="btnSubmit" runat="server" CausesValidation="true" CommandName="Update" CssClass="submit" Text="更新资料"></asp:LinkButton>
                    
                </div>
            </EditItemTemplate>
            </asp:FormView>
            <asp:Label ID="lblMessage" runat="server" Text=""></asp:Label>
            <!--提交订单按钮-->
            <div class="checkoutButtonBg">
                <asp:LinkButton ID="FinishButton" runat="server" CssClass="submit" Text="提交订单" OnClick="FinishButton_Click"></asp:LinkButton>
            </div>
        </asp:Panel>
        <!--完成信息区域-->
        <asp:Panel ID="panFinish" runat="server" Visible="false">
            <div class="checkOutLabel">
                感谢你的订购!<br /><br />
                <p>订单商品将开始通过快递配送,请保持联系方式畅通。</p>
                <p>如对订单有任何疑问,请随时联系我们的客户服务400123456</p>
                <p>.NET宠物商店</p>
            </div>
        </asp:Panel>
    </div>
</asp:Content>

checkout1.aspx.cs

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

/*****************************

代码编写:虾米大王
邮箱:modern358@163.com
完成日期:2021年4月10日
 
******************************/

namespace dynamicweb11_1
{
    public partial class CheckOut1 : System.Web.UI.Page
    {
        private decimal total;

        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["UserName"] == null)
            {
                Response.Redirect("~/SignIn.aspx?from=CheckOut1.aspx");
            }
        }

        protected void sdsCart_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
        {
            e.Command.Parameters[0].Value = Session["UserName"].ToString();
        }

        protected void gvCart_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                System.Data.DataRowView row1 = e.Row.DataItem as System.Data.DataRowView;
                total += Convert.ToInt32(row1.Row["quantity"]) * Convert.ToDecimal(row1.Row["list_price"]);
            }
            else if (e.Row.RowType == DataControlRowType.Footer)
            {
                ltlTotal.Text = "总价:" + total.ToString("C");
            }
            else
            {
                ltlTotal.Text = "";
            }
        }

        protected void sdsAccount_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
        {
            e.Command.Parameters[0].Value = Session["UserName"].ToString();
        }

        protected void fvAccount_ItemUpdated(object sender, FormViewUpdatedEventArgs e)
        {
            lblMessage.Text = "你的资料已更新<br>";
        }

        protected void FinishButton_Click(object sender, EventArgs e)
        {
            string cnString = System.Configuration.ConfigurationManager.ConnectionStrings["cnPetShop"].ToString();
            System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection(cnString);
            con.Open();

            string sqlOrder = "insert into orders values(@user_name,@order_date)";
            sqlOrder += " ; SELECT @@identity AS 'id'";
            System.Data.SqlClient.SqlCommand cmdOrder = new System.Data.SqlClient.SqlCommand(sqlOrder, con);
            cmdOrder.Parameters.AddWithValue("@user_name", Session["UserName"]);
            cmdOrder.Parameters.AddWithValue("@order_date",DateTime.Now.ToShortDateString());
            string order_id = cmdOrder.ExecuteScalar().ToString();
 
            string sqlCart = "select * from cart where user_name=@uName";
            System.Data.SqlClient.SqlDataAdapter adapter = new System.Data.SqlClient.SqlDataAdapter(sqlCart, con);
            adapter.SelectCommand.Parameters.AddWithValue("@uName",Session["UserName"]);
            System.Data.DataSet dsCart = new System.Data.DataSet();
            adapter.Fill(dsCart);

            for (int i = 0; i < dsCart.Tables[0].Rows.Count; i++)
            {
                string sqlOrderDetails = "insert into orderlineitem values(@order_id,@product_id,@quantity,@list_price)";
                System.Data.SqlClient.SqlCommand cmdDetails = new System.Data.SqlClient.SqlCommand(sqlOrderDetails, con);
                cmdDetails.Parameters.AddWithValue("@order_id", order_id);
                cmdDetails.Parameters.AddWithValue("@product_id",dsCart.Tables[0].Rows[i]["product_id"]);
                cmdDetails.Parameters.AddWithValue("@quantity",dsCart.Tables[0].Rows[i]["quantity"]);
                cmdDetails.Parameters.AddWithValue("@list_price",dsCart.Tables[0].Rows[i]["list_price"]);
                cmdDetails.ExecuteNonQuery();

            }

            string sqlDelete = "delete from cart where user_name=@user_name";
            System.Data.SqlClient.SqlCommand cmdDelete = new System.Data.SqlClient.SqlCommand(sqlDelete, con);
            cmdDelete.Parameters.AddWithValue("@user_name",Session["UserName"]);
            cmdDelete.ExecuteNonQuery();

            con.Close();
            panForm.Visible = false;
            panFinish.Visible = true;

        }
    }
}

products1.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Products1.aspx.cs" Inherits="dynamicweb11_1.Products1" MasterPageFile="~/MasterPage1.Master" %>
<asp:Content runat="server" ContentPlaceHolderID="cphPage">
<!--
代码编写:虾米大王
邮箱:modern358@163.com
完成日期:2021年4月10日
-->
    <div>
        <asp:DataList ID="dlProduct" runat="server" CellPadding="16" DataKeyField="product_id" DataSourceID="sdsProduct" HorizontalAlign="Center" RepeatColumns="2" Width="620px">
            <ItemTemplate>
                <div class="divLeft">
                    <img id="imgProduct" alt='<%# Eval("name") %>' src='<%# Eval("pro_image") %>' runat="server"/>
                </div>
                <div class="divRight">
                    <div class="productName">
                        <%# Eval("name") %>
                    </div>
                    <div class="productDescription">
                        <%# Eval("descn ") %>
                    </div>
                    <div class="itemText">
                        价格:<%# Eval("list_price ","{0:c}") %>
                    </div>
                    <div class="itemText">
                        <img id="imgCart" src="Comm_Images/button-cart.jpg" />
                        <asp:HyperLink ID="lnkCart" runat="server" NavigateUrl='<%# string.Format("~/ShoppingCart1.aspx?productId={0}&name={1}&price={2}&categoryId={3}",Eval("product_id "),Eval("name"),Eval("list_price "),Eval("category_id ")) %>' CssClass="linkCart" Text="添加购物车"></asp:HyperLink>
                    </div>
                </div>
            </ItemTemplate>
        </asp:DataList>
        <asp:SqlDataSource ID="sdsProduct" runat="server" ConnectionString="<%$ ConnectionStrings:cnPetShop %>" SelectCommand="SELECT * FROM [product] WHERE ([category_id] = @category_id)">
            <SelectParameters>
                <asp:QueryStringParameter Name="category_id" QueryStringField="categoryId" Type="String" />
            </SelectParameters>
        </asp:SqlDataSource>
    </div>
</asp:Content>

products1.aspx.cs

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

代码编写:虾米大王
邮箱:modern358@163.com
完成日期:2021年4月10日
 
******************************/
namespace dynamicweb11_1
{
    public partial class Products1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Request.QueryString["name"] != null)
            { 
                //Page.Master.Page.Title = Request.QueryString["name"].ToString(); //正确的写法
                Page.Title = Request.QueryString["name"].ToString();
            }

        }
    }
}

search.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Search.aspx.cs" Inherits="dynamicweb11_1.Search" MasterPageFile="~/MasterPage1.Master" %>
<asp:Content runat="server" ContentPlaceHolderID="cphPage">
    <p>很抱歉,这个功能暂未开发,你可以试着自己完善。</p>
</asp:Content>

shoppingcart1.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ShoppingCart1.aspx.cs" Inherits="dynamicweb11_1.ShoppingCart1" MasterPageFile="~/MasterPage1.Master" %>
<asp:Content runat="server" ContentPlaceHolderID="cphPage">
<!--
代码编写:虾米大王
邮箱:modern358@163.com
完成日期:2021年4月10日
-->
    <div class="cartPosition">
        <div class="cartHeader">
            购物车中的商品
        </div>
        <!--购物车内容-->
        <asp:SqlDataSource ID="sdsCart" runat="server" ConnectionString="<%$ ConnectionStrings:cnPetShop %>" OnSelecting="sdsCart_Selecting" SelectCommand="SELECT * FROM [cart] WHERE user_name=@uName" DeleteCommand="DELETE FROM [cart] WHERE [user_name] = @user_name AND [product_id] = @product_id" InsertCommand="INSERT INTO [cart] ([user_name], [product_id], [name], [list_price], [category_id], [quantity]) VALUES (@user_name, @product_id, @name, @list_price, @category_id, @quantity)" UpdateCommand="UPDATE [cart] SET [quantity] = @quantity WHERE [user_name] = @user_name AND [product_id] = @product_id">
            <SelectParameters>
                <asp:Parameter  Name="uName" Type="String"/>
            </SelectParameters>
            <DeleteParameters>
                <asp:Parameter Name="user_name" Type="String" />
                <asp:Parameter Name="product_id" Type="String" />
            </DeleteParameters>
            <InsertParameters>
                <asp:Parameter Name="user_name" Type="String" />
                <asp:Parameter Name="product_id" Type="String" />
                <asp:Parameter Name="name" Type="String" />
                <asp:Parameter Name="list_price" Type="Decimal" />
                <asp:Parameter Name="category_id" Type="String" />
                <asp:Parameter Name="quantity" Type="Int32" />
            </InsertParameters>
            <UpdateParameters>
                <asp:Parameter Name="quantity" Type="Int32" />
                <asp:Parameter Name="user_name" Type="String" />
                <asp:Parameter Name="product_id" Type="String" />
            </UpdateParameters>
        </asp:SqlDataSource>
        <asp:GridView ID="gvCart" runat="server" HorizontalAlign="Center" Width="400px" EmptyDataText="购物车中没有商品" AutoGenerateColumns="False" DataKeyNames="user_name,product_id" DataSourceID="sdsCart" CellPadding="4" ForeColor="#333333" GridLines="None" OnRowDataBound="gvCart_RowDataBound">
            <AlternatingRowStyle BackColor="White" />
            <Columns>
                <asp:ButtonField ButtonType="Button" CommandName="Delete" Text="删除">
                <ItemStyle Width="40px" />
                </asp:ButtonField>
                <asp:HyperLinkField DataNavigateUrlFields="category_id" DataTextField="name" DataNavigateUrlFormatString="~/Products1.aspx?categoryId={0}" HeaderText="名称" >
                <ItemStyle Width="200px" />
                </asp:HyperLinkField>
                <asp:TemplateField HeaderText="数量">
                    <ItemTemplate>
                        <asp:TextBox ID="txtQuantity" runat="server" Width="20px" Text='<%# Bind("quantity") %>' AutoPostBack="True" OnTextChanged="txtQuantity_TextChanged"></asp:TextBox>
                        <asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="txtQuantity" ErrorMessage="请输入1到100的数字" MaximumValue="100" MinimumValue="1" Type="Integer" Display="Dynamic"></asp:RangeValidator>
                    </ItemTemplate>
                    <ItemStyle Width="50px" />
                </asp:TemplateField>
                <asp:BoundField DataField="list_price" DataFormatString="{0:C}" HeaderText="单价" SortExpression="list_price">
                <ItemStyle HorizontalAlign="Center" Width="50px" />
                </asp:BoundField>
                <asp:HyperLinkField DataNavigateUrlFields="product_Id" DataNavigateUrlFormatString="~/WishList1.aspx?productId={0}" Text="收藏">
                <ControlStyle CssClass="linkWishlist" Width="50px" />
                <ItemStyle Width="50px" />
                </asp:HyperLinkField>
            </Columns>
            <EditRowStyle BackColor="#2461BF" />
            <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
            <HeaderStyle CssClass="labelLists" BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
            <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
            <RowStyle CssClass="listItem" Height="30px" BackColor="#EFF3FB" />
            <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
            <SortedAscendingCellStyle BackColor="#F5F7FB" />
            <SortedAscendingHeaderStyle BackColor="#6D95E1" />
            <SortedDescendingCellStyle BackColor="#E9EBEF" />
            <SortedDescendingHeaderStyle BackColor="#4870BE" />
        </asp:GridView>
        <!--总计-->
        <div class="dottedLineCentered">
            &nbsp;
        </div>
        <div class="total">
            <asp:Literal ID="ltlTotal" runat="server"></asp:Literal>
        </div>
        <!--继续选购/结算-->
        <div>
            <asp:LinkButton ID="lbtnBack" runat="server" CssClass="linkCheckOut" OnClick="lbtnBack_Click">继续选购</asp:LinkButton><br />
            <asp:LinkButton ID="lbtnCheckout" runat="server" CssClass="linkCheckOut" Text="结算" OnClick="lbtnCheckout_Click"></asp:LinkButton>
        </div>
    </div>
</asp:Content>

shoppingcart1.aspx.cs

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

代码编写:虾米大王
邮箱:modern358@163.com
完成日期:2021年4月10日
 
******************************/
namespace dynamicweb11_1
{
    public partial class ShoppingCart1 : System.Web.UI.Page
    {
        //
        private decimal total;

        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["UserName"] == null)
            {
                if (Request.QueryString["categoryId"] == null) return;
                string qsValue = "~/Products1.aspx?categoryId=" + Request.QueryString["categoryId"].ToString();
                Response.Redirect("~/SignIn1.aspx?from=" + qsValue);
            }

            if (!IsPostBack)
            { 
                if(!string.IsNullOrEmpty(Request.QueryString["productId"]))
                {
                    string cnString = System.Configuration.ConfigurationManager.ConnectionStrings["cnPetShop"].ToString();
                    System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection(cnString);
                    con.Open();

                    string sqlUpdate = "update cart set quantity=quantity + 1 where user_name=@uName and product_id=@proId";
                    System.Data.SqlClient.SqlCommand cmdUpdate = new System.Data.SqlClient.SqlCommand(sqlUpdate,con);
                    cmdUpdate.Parameters.AddWithValue("@uName",Session["UserName"]);
                    cmdUpdate.Parameters.AddWithValue("@proId",Request.QueryString["productId"]);
                    int numUpdate = cmdUpdate.ExecuteNonQuery();

                    if(numUpdate <= 0)
                    {
                        string sqlInsert  = "insert into cart values(@uName,@proId,@name,@price,@categoryId,1)";
                        System.Data.SqlClient.SqlCommand cmdInsert  = new System.Data.SqlClient.SqlCommand(sqlInsert,con);
                        cmdInsert.Parameters.AddWithValue("@uName",Session["UserName"]);
                        cmdInsert.Parameters.AddWithValue("@proId",Request.QueryString["productId"]);
                        cmdInsert.Parameters.AddWithValue("@name",Request.QueryString["name"]);
                        cmdInsert.Parameters.AddWithValue("@price",Request.QueryString["price"]);
                        cmdInsert.Parameters.AddWithValue("@categoryId",Request.QueryString["categoryId"]);
                        cmdInsert.ExecuteNonQuery();
                    }
                    con.Close();
                }
            }
        }

        protected void sdsCart_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
        {
            if (Session["UserName"] == null)
            { 
                Response.Redirect("~/SignIn1.aspx");
            }
                
            e.Command.Parameters[0].Value = Session["UserName"].ToString();
        }

        protected void gvCart_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                System.Data.DataRowView row1 = e.Row.DataItem as System.Data.DataRowView;
                total += Convert.ToInt32(row1.Row["quantity"]) * Convert.ToDecimal(row1.Row["list_price"]);
            }
            else if (e.Row.RowType == DataControlRowType.Footer)
            {
                ltlTotal.Text = "总价:" + total.ToString("C");
            }
            else
            {
                ltlTotal.Text = "";
            }
        }

        protected void txtQuantity_TextChanged(object sender, EventArgs e)
        {
            for (int i = 0; i < gvCart.Rows.Count; i++)
            {
                gvCart.UpdateRow(i, false);
            }
        }

        protected void lbtnBack_Click(object sender, EventArgs e)
        {
            if (Request.QueryString["categoryId"] != null)
            {
                Response.Redirect("~/products1.aspx?categoryId=" + Request.QueryString["categoryId"]);
            }
            else
            {
                Response.Redirect("~/products1.aspx?categoryId=BACKYARD");
            }
        }

        protected void lbtnCheckout_Click(object sender, EventArgs e)
        {
            if (gvCart.Rows.Count <= 0)
            {
                Response.Write("<script>window.alert('请选购商品后进行结算!')</script>");
                return;
            }
            else
            {
                Response.Redirect("~/CheckOut1.aspx");
            }
        }
    }
}

userprofile1.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="UserProfile1.aspx.cs" Inherits="dynamicweb11_1.UserProfile1" MasterPageFile="~/MasterPage1.Master" %>
<asp:Content runat="server" ContentPlaceHolderID="cphPage">
<!--
代码编写:虾米大王
邮箱:modern358@163.com
完成日期:2021年4月10日
-->
    <div class="profilePostition">
        <div class="checkoutHeaders">
            个人信息
        </div>
        <div class="info">
            用户名:<asp:Label ID="lblName" runat="server" Text="" CssClass="info"></asp:Label>
        </div>
        <!--个人资料修改-->
        <asp:FormView ID="fvAccount" runat="server" DataKeyNames="user_name" DataSourceID="sdsAccount" DefaultMode="Edit" OnItemUpdated="fvAccount_ItemUpdated">
            <EditItemTemplate>
                <table style="border-bottom:1px dotted #555555;border-spacing:0;padding:0;border-collapse:collapse;">
                    <tr>
                        <td class="label" width="50%" style="height:50px;">
                            姓名:<br />
                            <asp:TextBox ID="txtCname" runat="server" Text='<%# Bind("cname") %>' CssClass="checkoutTextbox" MaxLength="80" Width="155px"></asp:TextBox><br />
                            <asp:RequiredFieldValidator ID="valFirstName" runat="server" ControlToValidate="txtCname" ErrorMessage="输入姓名" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>
                        </td>
                        <td class="label" width="40%">&nbsp;</td>
                    </tr>
                    <tr>
                        <td class="label" style="height:50px;">
                            国家:<br />
                            <asp:TextBox ID="txtCountry" runat="server" Text='<%# Bind("country") %>' CssClass="checkoutTextbox" MaxLength="80" Width="155px"></asp:TextBox><br />
                            <asp:RequiredFieldValidator ID="valCountry" runat="server" ControlToValidate="txtCountry" ErrorMessage="输入国家" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>
                        </td>
                        <td class="label">
                            省:<br />
                            <asp:TextBox ID="txtProvince" runat="server" Text='<%# Bind("province") %>' CssClass="checkoutTextbox" MaxLength="80" Width="155px"></asp:TextBox><br />
                            <asp:RequiredFieldValidator ID="valProvince" runat="server" ControlToValidate="txtProvince" ErrorMessage="输入省份" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>
                        </td>
                    </tr>
                    <tr>
                        <td class="label" style="height:50px;">
                            城市:<br />
                            <asp:TextBox ID="txtCity" runat="server" Text='<%# Bind("city") %>' CssClass="checkoutTextbox" MaxLength="80" Width="155px"></asp:TextBox><br />
                            <asp:RequiredFieldValidator ID="valCity" runat="server" ControlToValidate="txtCity" ErrorMessage="输入城市" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>
                        </td>
                        <td class="label" style="height:50px;">
                            邮编:<br />
                            <asp:TextBox ID="txtZipcode" runat="server" Text='<%# Bind("zip_code") %>' CssClass="checkoutTextbox" MaxLength="80" Width="80px"></asp:TextBox><br />
                            <asp:RequiredFieldValidator ID="valZipcode" runat="server" ControlToValidate="txtZipcode" ErrorMessage="输入邮编" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>
                        </td>
                    </tr>
                    <tr>
                        <td class="label" colspan="2" style="height:50px;">
                            地址:<br />
                            <asp:TextBox ID="txtAddress" runat="server" Text='<%# Bind("address") %>' CssClass="checkoutTextbox" MaxLength="80" Width="330px"></asp:TextBox><br />
                            <asp:RequiredFieldValidator ID="valAddress" runat="server" ControlToValidate="txtAddress" ErrorMessage="输入地址" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>
                        </td>
                    </tr>
                    <tr>
                        <td class="label" colspan="2" style="height:50px;">
                            电话:<br />
                            <asp:TextBox ID="txtPhone" runat="server" Text='<%# Bind("phone") %>' CssClass="checkoutTextbox" MaxLength="80" Width="155px"></asp:TextBox><br />
                            <asp:RequiredFieldValidator ID="valPhone" runat="server" ControlToValidate="txtPhone" ErrorMessage="输入电话" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>
                        </td>
                    </tr>
                    <tr>
                        <td class="label" colspan="2" style="height:70px;" valign="top">
                            电子邮箱:<br />
                            <asp:TextBox ID="txtEmail" runat="server" Text='<%# Bind("email") %>' CssClass="checkoutTextbox" MaxLength="80" Width="330px"></asp:TextBox><br />
                            <asp:RequiredFieldValidator ID="valEmail" runat="server" ControlToValidate="txtEmail" ErrorMessage="输入电子邮件" Display="Dynamic" Font-Size="Small" ForeColor="Red"></asp:RequiredFieldValidator>
                            <asp:RegularExpressionValidator ID="valEmail1" ControlToValidate="txtEmail" runat="server" ErrorMessage="无效的Email地址" Display="Dynamic" Font-Size="Small" ForeColor="Red" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>
                        </td>
                    </tr>
                </table>
                <div class="checkoutButtonBg">
                    <!--提交更新的命令按钮-->
                    <asp:LinkButton ID="btnSubmit" runat="server" CausesValidation="true" CommandName="Update" CssClass="submit" Text="更新"></asp:LinkButton>
                </div>
            </EditItemTemplate>
        </asp:FormView>
        <asp:SqlDataSource ID="sdsAccount" runat="server" ConnectionString="<%$ ConnectionStrings:cnPetShop %>" SelectCommand="SELECT * FROM [account] WHERE ([user_name] = @user_name)" UpdateCommand="UPDATE [account] SET [cname] = @cname, [country] = @country, [province] = @province, [city] = @city, [address] = @address, [zip_code] = @zip_code, [phone] = @phone, [email] = @email WHERE [user_name] = @user_name" OnSelecting="sdsAccount_Selecting">
            <SelectParameters>
                <asp:Parameter Name="user_name" Type="String" />
            </SelectParameters>
            <UpdateParameters>
                <asp:Parameter Name="cname" Type="String" />
                <asp:Parameter Name="country" Type="String" />
                <asp:Parameter Name="province" Type="String" />
                <asp:Parameter Name="city" Type="String" />
                <asp:Parameter Name="address" Type="String" />
                <asp:Parameter Name="zip_code" Type="String" />
                <asp:Parameter Name="phone" Type="String" />
                <asp:Parameter Name="email" Type="String" />
                <asp:Parameter Name="user_name" Type="String" />
            </UpdateParameters>
        </asp:SqlDataSource>
        <!--操作结果信息-->
        <asp:Label ID="lblMessage" runat="server" Text="" CssClass="label"></asp:Label>
    </div>
</asp:Content>

userprofile1.aspx.cs

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

代码编写:虾米大王
邮箱:modern358@163.com
完成日期:2021年4月10日
 
******************************/
namespace dynamicweb11_1
{
    public partial class UserProfile1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["UserName"] != null)
            {
                lblName.Text = Session["UserName"].ToString();
                
            }
            else
            {
                Response.Redirect("~/SignIn1.aspx?from=~/UserProfile1.aspx");
            }
        }

        protected void sdsAccount_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
        {
            if (Session["UserName"] != null)
            {
                e.Command.Parameters[0].Value = Session["UserName"].ToString();
            }
            else
            {
                return;
            }
            
        }

        protected void fvAccount_ItemUpdated(object sender, FormViewUpdatedEventArgs e)
        {
            lblMessage.Text = "你的资料已完成更新<br>";
        }
    }
}

web.config

<?xml version="1.0" encoding="utf-8"?>

<!--
  有关如何配置 ASP.NET 应用程序的详细信息,请访问
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->

<configuration>
    <connectionStrings>
        <add name="cnPetShop" connectionString="Data Source=LAPTOP-AQKEN65V\SQLEXPRESS08;Initial Catalog=netPetShop;Persist Security Info=True;User ID=sa;Password=123456"
            providerName="System.Data.SqlClient" />
    </connectionStrings>
    <system.web>
      <compilation debug="true" targetFramework="4.5" />
      <httpRuntime targetFramework="4.5" />
      <pages theme="PetShop1"></pages>
    </system.web>

</configuration>

项目中所用图片

 

 

以上是全部代码及部分图片,因为图片太多,完整的项目代码,我会上传至博客资源中。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虾米大王

有你的支持,我会更有动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值