@tel varchar(50),
@fax varchar(50),
@mobile varchar(50),
@postalcode varchar(50),
@address varchar(255),
@NetSite varchar(50),
@IsEmp bit, --是否员工
@IsVendor bit, --是否厂商
@IsFriend bit, --是否伙伴
@Photo varchar(50) , --相片地址
@OICQ varchar(50), --OICQ
@ICQ varchar(50), --ICQ
@MSN varchar(50) --MSN
)
AS
INSERT INTO Customers
([Name],[IsDel],[Email],[Password],[公司名称],[电话号码],[传真号码],[移动电话],[邮政编码],[详细地址],[互联网站],[AreaID],IsEmp,IsVendor,IsFriend,Photo,OICQ,ICQ,MSN)
VALUES
(@UserName,0,@Email,@Pssword,@Company,@tel,@fax,@mobile,@postalcode,
@address,@NetSite,1,@IsEmp,@IsVendor,@IsFriend,@Photo,@OICQ,@ICQ,@MSN)
GO
6.4.2.会员登录
会员登录用于网站会员登录本网站进行购物或查看订单情况。会员登录入口位于网站首页的左侧,页面运行结果如图4所示。下面给出会员登录页面的设计效果图和会员登录后的会员登录页面的运行结果,分别如图9、图10所示。
图6.4.2.1 会员登录页面的设计效果
当用户在登录窗口中输入电子邮件和登录密码后,单击【开始登录】按钮,系统将对输入的电子邮件和密码进行验证,如果用户输入的电子邮件存在,则判断用户输入的密码是否正确,如果密码正确,则进入网站【贵宾休憩厅】,显示登录用户的【我的信息】、【我的订单】按钮、【统计信息】的按钮、【注销退出】以及【修改密码】按钮,否则提示登录失败。会员登录的调用的存储过程spCustomersLogin代码如下:
/****** Object: Stored Procedure dbo.spCustomersLogin ******/
CREATE PROCEDURE dbo.spCustomersLogin
(
@Email VARCHAR(100),
@Password VARCHAR(50),
@ID INT OUTPUT
)
AS
SELECT
@ID = ID
FROM
Customers
WHERE
Email = @Email
AND
Password = @Password
IF @@Rowcount < 1
SELECT
@ID = 0
GO
图6.4.2.2 会员登录后的会员登录页面的运行结果
修改密码的存储过程如下:
/****** Object: Stored Procedure dbo.spCustomersUpdatePassword ******/
CREATE PROCEDURE dbo.spCustomersUpdatePassword
(
@Email VARCHAR(100),
@PasswordOld VARCHAR(50),
@PasswordNew VARCHAR(50),
@Result VARCHAR(100) OUTPUT
)
AS
UPDATE Customers SET Password = @PasswordNew WHERE (IsEmp = 1)
AND (Email = @Email) AND (Password = @PasswordOld)
IF @@ROWCOUNT = 1
SELECT @Result = "※ 数据库提示: 更新密码成功, 修改已经保存"
ELSE
SELECT @Result = "※ 数据库提示: 更新密码失败,, 请检查各项输入是否准确"
PRINT @Result
GO
6.5 购物车管理模块
购物车管理是所有表单中访问次数最多也是最频繁的,因此它涉及了较多的存储过程,这些存储过程主要是对购物车进行管理、选择和更新商品信息,这些存储过程有:
6.5.1 购物车页面(shoppingcart.aspx)
可以查询目前购物车中的商品数目以及其他统计信息。
图 6.5.1.1 购物车页面
购物车条目添加页面(AddToCart.aspx)。收集用户信息,并且更新购物车,最后重新定向到购物车的显示页面。
代码如下:
protected void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if (Request.Params["ProductID"] != null)
{
String CartId = pub.GetShoppingCartID();
pub.spShoppingCartAddItem(CartId, Int32.Parse(Request.Params["ProductID"]), 1);
}
Response.Redirect("ShoppingCart.aspx");
}
把当前商品加入指定的购物车里调用存储过程如下spShoppingCartAddItem
:
/****** Object: Stored Procedure dbo.spShoppingCartAddItem ******/
CREATE Procedure spShoppingCartAddItem
(
@CartID VARCHAR(50),
@ProductID INT,
@Quantity INT
)
As
DECLARE @CountItems int
SELECT
@CountItems = Count(ProductID)
FROM
ShoppingCart
WHERE
ProductID = @ProductID
AND
CartID = @CartID
IF @CountItems > 0 /* 如果已经存在购物车, 那么只需要更新数量 */
UPDATE
ShoppingCart
SET
Quantity = (@Quantity + Quantity)
WHERE
ProductID = @ProductID
AND
CartID = @CartID
ELSE /* 否则, 新开一个购物车 */
INSERT INTO ShoppingCart
(
CartID,
Quantity,
ProductID,
DateTimed
)
VALUES
(
@CartID,
@Quantity,
@ProductID,
getdate()
)
GO
购物车.更新数量存储过程代码如下:
/****** Object: Stored Procedure dbo.spShoppingCartUpdateQty ******/
CREATE PROCEDURE dbo.spShoppingCartUpdateQty
(
@CartID VARCHAR(50),
@ProductID INT,
@Quantity INT
)
AS
UPDATE ShoppingCart
SET
Quantity = @Quantity
WHERE
CartID = @CartID
AND
ProductID = @ProductID
GO
购物车.删除所选项存储过程代码如下:
/****** Object: Stored Procedure dbo.spShoppingCartRemoveItem ******/
CREATE PROCEDURE dbo.spShoppingCartRemoveItem
(
@CartID VARCHAR(50),
@ProductID INT
)
AS
if @ProductID is NOT NULL
DELETE FROM ShoppingCart
WHERE
CartID = @CartID
AND
ProductID = @ProductID
else
DELETE FROM ShoppingCart
WHERE
CartID = @CartID
GO
获取指定购物车ID的总金额存储过程代码如下:
/****** Object: Stored Procedure dbo.spShoppingCartTotal******/
CREATE PROCEDURE dbo.spShoppingCartTotal
(
@CartID VARCHAR(50),
@TotalCost money OUTPUT
)
AS
SELECT @TotalCost = SUM(B.UnitCost * A.Quantity)
FROM dbo.ShoppingCart A INNER JOIN
dbo.Products B ON A.ProductID = B.ProductID
WHERE (A.CartID = @CartID)
GO
显示指定购物车ID的记录里调用存储过程如下
/****** Object: Stored Procedure dbo.spShoppingCartList******/
CREATE PROCEDURE dbo.spShoppingCartList
(
@CartID VARCHAR(50)
网上购物电子商务系统(四)由毕业论文网(www.huoyuandh.com)会员上传。