shoppingCart

using System;
using System.Data;
using System.Configuration;
using
System.Collections;
using System.Web;
using System.Web.Security;
using
System.Web.UI;
using System.Web.UI.WebControls;
using
System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class ShoppingCart : System.Web.UI.Page
{
public
static string M_str_Count;
public string st;
protected void
Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)

{
string P_str_UserName = "";

//向购物车中添加商品,如果购物车中已经存在该商品,则商品数量加1,如果是第一次购买,则向购物车中添加一条商品信息
try

{
P_str_UserName = Session["username"].ToString();

string P_str_BookId = Request["BookId"];

DataSet ds = DB.reDs("select count(*) from Cart where UserName=" +
P_str_UserName + "and BookId=" + P_str_BookId);
if
(ds.Tables[0].Rows[0][0].ToString() == "0")
{

DataSet ds1 = DB.reDs("select ItemName,bookPrice from
Item where BookId=" + P_str_BookId);
string
P_str_ItemName = ds1.Tables[0].Rows[0][0].ToString();

string P_str_Price = ds1.Tables[0].Rows[0][1].ToString();

string P_str_Quantity = "1";
DB.ExSql("insert into Cart
values(" + P_str_UserName + "," + P_str_BookId + ",‘" + P_str_ItemName + "‘," +
P_str_Price + "," + P_str_Quantity + ")");
}

else
{
DB.ExSql("update Cart set
Quantity=Quantity+1 where UserName=" + P_str_UserName + "and BookId=" +
P_str_BookId);
}
}
catch {
}

//显示购物车中的商品信息
Bind();
}
}

//绑定DataList控件
public void Bind()
{
string session="";

try
{
session = Session["username"].ToString
();
}
catch {

}
if
(!string.IsNullOrEmpty(session))
{
DataSet ds2
= DB.reDs("select *,Price*Quantity As Count from Cart where UserName=" +
Session["username"]);
float P_fl_Count = 0;

foreach (DataRow dr in ds2.Tables[0].Rows)
{

P_fl_Count += Convert.ToSingle(dr[5]);
}

M_str_Count = P_fl_Count.ToString();

dlShoppingCart.DataSource = ds2;

dlShoppingCart.DataBind();
}
else {

Response.Write(@"<script type=‘text/javascript‘>
alert
(‘请登陆!‘);location=‘userLogin.aspx‘; </script>");

}

}

protected void dlShoppingCart_ItemDataBound(object sender,
DataListItemEventArgs e)
{
//用来实现数量文本框中只能输入数字
TextBox
txtGoodsNum = (TextBox)e.Item.FindControl("txtGoodsNum");
if
(txtGoodsNum != null)
{

txtGoodsNum.Attributes["onkeyup"] = "value=value.replace(/[^\\d]/g,‘‘)";

}

}
//清空购物车
protected void lnkbtnClear_Click(object sender,
EventArgs e)
{
bool P_bool_reVal = DB.ExSql("Delete from Cart
where UserName=" + Session["username"]);
if (!P_bool_reVal)

Response.Write("<script>清空失败,请重试!</script>");

else
Bind();
}
//清空购物车时的提示信息
protected void
lnkbtnClear_Load(object sender, EventArgs e)
{

lnkbtnClear.Attributes["onclick"] = "javascript:return
confirm(‘你确定要清空购物车吗?‘)";
}

//继续购物
protected void lnkbtnContinue_Click(object sender, EventArgs
e)
{
Response.Redirect("~/Default.aspx");
}

//删除购物车中的商品
protected void dlShoppingCart_DeleteCommand(object source,
DataListCommandEventArgs e)
{
bool P_bool_reVal =
DB.ExSql("delete from Cart where UserName=" + Session["userName"] + " and
BookId=" + e.CommandArgument.ToString());
if (!P_bool_reVal)

Response.Write("<script>删除失败,请重试!</script>");

else
Bind();
}

//删除购物车中的商品时的提示信息
protected void lnkbtnDel_Load(object sender,
EventArgs e)
{
((LinkButton)sender).Attributes["onclick"] =
"javascript:return confirm(‘你确定要删除该物品吗?‘)";
}
//更新购物车
protected
void dlShoppingCart_ItemCommand(object source, DataListCommandEventArgs e)

{
//if (e.CommandName == "updateNum")
//{
//
string P_str_Num = ((TextBox)e.Item.FindControl("txtGoodsNum")).Text;

// bool P_bool_reVal = DB.ExSql("update Cart set Quantity=" + P_str_Num +
"where UserName=" + Session["userName"] + " and BookId=" +
e.CommandArgument.ToString());
// if (P_bool_reVal)
//
Bind();
//}

if (e.CommandName == "updateNum")
{

string P_str_Num = ((TextBox)e.Item.FindControl("txtGoodsNum")).Text;

bool P_bool_reVal = DB.ExSql("update Cart set Quantity=Quantity+1 where
UserName=" + Session["userName"] + " and BookId=" +
e.CommandArgument.ToString());
if (P_bool_reVal)

Bind();
}

if (e.CommandName == "updateNum1")
{
string
P_str_Num = ((TextBox)e.Item.FindControl("txtGoodsNum")).Text;

bool P_bool_reVal = DB.ExSql("update Cart set Quantity=Quantity-1 where
UserName=" + Session["userName"] + " and BookId=" +
e.CommandArgument.ToString());
if (P_bool_reVal)

Bind();
}
}

protected void lnkbtnSettleAccounts_Click(object sender, EventArgs e)

{
if (M_str_Count == "")
{

Response.Write("<script>alert(‘您的购物车中没有任何物品!‘);</script>");

}
else
{
DataSet ds = DB.reDs("select
Money from tb_User where UserID=" + Session["UserID"].ToString());

decimal P_str_Money =
Convert.ToDecimal(ds.Tables[0].Rows[0][0].ToString());
}
}

}

shoppingCart,码迷,mamicode.com

时间: 2024-10-28 21:02:42

shoppingCart的相关文章

Python 基础 - Day 2 Assignment - ShoppingCart 购物车程序

作业要求 1.启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表 2.允许用户根据商品编号购买商品 3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 4.可随时退出,退出时,打印已购买商品和余额 5.在用户使用过程中, 关键输出,如余额,商品已加入购物车等消息,需高亮显示 6.用户下一次登录后,输入用户名密码,直接回到上次的状态,即上次消费的余额什么的还是那些,再次登录可继续购买 7.允许查询之前的消费记录

JavaWeb:HttpSession(二)

早上花时间补完最后一点小总结: 1.关于 /:可以代表当前WEB 应用的根目录,也可以代表WEB 站点的根目录. 1)./ 如果交给浏览器解析,则代表WEB 站点的根目录:如果交给WEB 服务器解析,代表当前WEB 应用的根目录. 2).代表当前WEB 应用的根目录:在web.xml 文件中,映射路径:请求的转发  代表当前WEB 站点的根目录:超链接的 href 属性:请求的重定向中的 / 2.关于绝对路径: 1).写绝对路径肯定不会有问题,写相对路径可能会发生问题. 2).绝对路径:相对于当

JavaWeb:EL表达式

JavaWeb:EL表达式 EL表达式说明 1.Expression Language语言,一种用于JSP文件中的数据访问的语言. 2.能够简化JSP文件中该数据访问的代码,可用来替代传统的基于<%= %>和部分<% %>的程序片段. 3.EL表达式使得JSP文件的创建人员能够用更加简单的语法来访问数据. 4.基本形式为: ${var} EL运算符 (来自孤傲苍狼) 1.关系运算符 2.逻辑运算符: 3.empty运算符:检查对象是否为null(空) 4.二元表达式:${user!

自己总结的 iOS ,Mac 开源项目以及库,知识点------持续更新

自己在 git  上看到一个非常好的总结的东西,但是呢, fork  了几次,就是 fork  不到我的 git 上,干脆复制进去,但是,也是认真去每一个每一个去认真看了,并且也是补充了一些,感觉非常棒,所以好东西要分享,为啥用 CN 博客,有个好处,可以随时修改,可以持续更新,不用每次都要再发表,感觉这样棒棒的 我们 自己总结的iOS.mac开源项目及库,持续更新.... github排名 https://github.com/trending,github搜索:https://github.

004bean作用域

1.Singleton(单例) 2.Prototype(原型)---->每次注入.通过Spring应用上下文获取,都会重新创建    @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) 3.Session(会话)---->在Web应用中,为每个会话创建一个bean实例 @Component @Scope(value = WebApplicationContext.SCOPE_SESSION, //在当前会话,此bean为单例,单例在Spring应用上

Spring JSR-250注解

Spring JSR-250注解 注释配置相对于 XML 配置具有很多的优势: 它可以充分利用 Java 的反射机制获取类结构信息,这些信息可以有效减少配置的工作.如使用 JPA 注释配置 ORM 映射时,我们就不需要指定 PO 的属性名.类型等信息,如果关系表字段和 PO 属性名.类型都一致,您甚至无需编写任务属性映射信息——因为这些信息都可以通过 Java 反射机制获取. 注释和 Java 代码位于一个文件中,而 XML 配置采用独立的配置文件,大多数配置信息在程序开发完成后都不会调整,如果

mybatis分页和主键生成

oracle 使用 mybatis的时候,主键自动生成: <insert id="createBigOrder" parameterType="BigOrder" useGeneratedKeys="true" keyProperty="id"> <selectKey resultType="int" order="BEFORE" keyProperty="i

python循环之for循环与模拟购物车小程序

for循环 for 变量 in 范围:     代码块...         contune                 #跳出本次循环接着执行下一次循环     for 变量 in 范围:         代码块...             break              #跳出本层循环,回到上一个for循环 else:                #其实for循环和while循环都有else子句,不过是当循环完全执行了才会执行     代码块...               

JavaWeb:网上书店的案例

功能分析: 只有一个角色客户,客户可以 --查看图书信息(包括查看图书详细信息,使用条件(例价格区间)查看图书信息,对图书进行翻页) --把图书加入购物车 --查看购物车 --修改购物车(包括清空购物车,修改购物车单本图书数量,删除单本图书) --结账(填写用户名和账号信息) --查看交易记录 总体架构: MVC 设计模式: --model:POJO --controller:Servlet --view:JSP + EL + JSTL 技术选型: 数据库:Mysql 数据源:C3P0 JDBC