protected void btnShop_Click(object sender, EventArgs e) { BLL.XiangXiDDBusiness bus = new BLL.XiangXiDDBusiness(); XiangXiDD xx = new XiangXiDD(); if (float.Parse(Label5.Text) < float.Parse(TextBox1.Text)) { Alert.AlertAndRedirect("对不起您购买的商品不能大于可订数量", "ShowSP.aspx?id=" + Request.QueryString["id"].ToString()); } else { string Orderid; if (Session["UserName"] == null) { Alert.AlertAndRedirect("您还没有登录,请登录后再购买,谢谢合作!", "Default.aspx"); } else { //DAL.SQLDB.ExecuteReader("update XiangXiDD set shuliang=shuliang+" + TextBox1.Text + " where SPID='" + + "' and meber='" + Session["UserName"].ToString() + "' and OrderID='" + Orderid + "' "); xx.OrderID = DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString(); xx.SPID =long.Parse( Request.QueryString["id"].ToString()); xx.SPName = Label2.Text; xx.SPPrice = Convert.ToDecimal(TextBox1.Text) * decimal.Parse(Label4.Text); xx.shuliang =Convert.ToInt32( TextBox1.Text); xx.Member = Session["UserName"].ToString(); bus.Add(xx); Alert.AlertAndRedirect("购买成功!", "Default.aspx"); } } }
时间: 2024-02-14 20:23:52 浏览: 132
这段代码是用来处理用户购买商品的操作。当用户点击“购买”按钮时,会先判断购买的数量是否大于可订数量,如果是,则弹出提示信息,否则继续进行操作。如果用户没有登录,则会提示用户需要先登录。接下来,会生成一个订单号,并将商品信息和订单信息保存到数据库中。最后,会提示用户购买成功,并跳转到网站的首页。需要注意的是,这段代码中没有对输入的购买数量进行验证,因此可能会导致程序出现异常。另外,生成订单号的方式也不够安全,容易被恶意攻击者猜测出来。
相关问题
public partial class Admin_UserList : System.Web.UI.Page { Alert js = new Alert(); protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { GetDate(); } } protected void gvInfo_RowDeleting(object sender, GridViewDeleteEventArgs e) { string ID = gvInfo.DataKeys[e.RowIndex].Values[0].ToString(); try { //业务逻辑层 BLL.UsersBusiness busi = new BLL.UsersBusiness(); busi.Delete(int.Parse(ID)); Label4.Text = "删除成功!"; gvInfo.EditIndex = -1; GetDate(); } catch { Label4.Text = "删除失败!"; } }
这段代码看起来是一个 ASP.NET 网页的代码,其中定义了一个名为 Admin_UserList 的页面类,它继承了 System.Web.UI.Page 类。在页面加载时,如果不是页面回传(PostBack),则调用 GetDate 方法,该方法可能是获取一些数据并显示在 GridView 控件中。在 GridView 控件的行删除事件(gvInfo_RowDeleting)中,根据被删除行的索引获取对应的数据行的 ID,然后调用 BLL.UsersBusiness 类的 Delete 方法来删除该行数据。如果删除成功,则在页面上显示 "删除成功!",否则显示 "删除失败!"。其中还定义了一个 Alert 类的实例 js,但它似乎没有在这段代码中被使用。
protected void btnOrder_Click(object sender, EventArgs e) { //检查库存 if (CheckStock() == false) { return; } DataSet ds = business.GetList(int.Parse(Session["UserId"].ToString())); List<string> missStock = new List<string>(); //循环片段购物车中的商品,添加订单数据 for (int I = 0; I < ds.Tables[0].Rows.Count; I++) { DataTable dt = ds.Tables[0]; BLL.XiangXiDDBusiness bus = new BLL.XiangXiDDBusiness(); XiangXiDD xx = new XiangXiDD(); xx.OrderID = DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString(); xx.SPID = long.Parse(dt.Rows[I]["SPID"].ToString()); xx.SPName = dt.Rows[I]["SPName"].ToString(); xx.SPPrice = Convert.ToDecimal(dt.Rows[I]["SPPrice"].ToString()) * decimal.Parse(dt.Rows[I]["Num"].ToString()); xx.shuliang = Convert.ToInt32(dt.Rows[I]["Num"].ToString()); xx.Member = Session["UserName"].ToString(); bus.Add(xx); } business.ClearCart(int.Parse(Session["UserId"].ToString())); //清空购物车 Alert.AlertAndRedirect("结算成功!", "Default.aspx"); }
这是一个 ASP.NET 网页中的 C# 代码,实现了一个按钮(btnOrder)的点击事件,用于结算购物车中的商品。代码中通过调用 CheckStock() 方法来检查库存是否充足,如果不充足则返回。然后通过调用 business.GetList() 方法来获取用户购物车中的商品列表,并且循环遍历每个商品,将其添加到订单数据中。添加订单数据时,使用了 XiangXiDD 类来表示详细订单信息,订单编号(xx.OrderID)使用了当前时间的毫秒数构成,商品ID(xx.SPID)、商品名称(xx.SPName)、商品单价(xx.SPPrice)、商品数量(xx.shuliang)、会员名(xx.Member)等属性都从商品列表中获取。最后,通过调用 business.ClearCart() 方法来清空用户的购物车,然后弹出一个提示框,提示用户结算成功。
阅读全文