📄 checkout.aspx.cs
字号:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using shop.DbBase;
using System.Text;
namespace shop
{
/// <summary>
/// checkOut 的摘要说明。
/// </summary>
public class checkOut : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label lblUserName;
protected System.Web.UI.WebControls.DataGrid grdShopList;
protected System.Web.UI.WebControls.Label lblError;
protected System.Web.UI.WebControls.TextBox txtLinkMan;
protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator1;
protected System.Web.UI.WebControls.TextBox txtEmail;
protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator2;
protected System.Web.UI.WebControls.TextBox txtPhone;
protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator3;
protected System.Web.UI.WebControls.TextBox txtPost;
protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator4;
protected System.Web.UI.WebControls.TextBox txtAddress;
protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator5;
protected System.Web.UI.WebControls.TextBox txtRemark;
protected System.Web.UI.WebControls.DropDownList dropTime;
protected System.Web.UI.WebControls.DropDownList dropSMode;
protected System.Web.UI.WebControls.DropDownList dropFMode;
protected System.Web.UI.WebControls.RadioButtonList radButton;
protected System.Web.UI.WebControls.Button btnSure;
protected System.Web.UI.WebControls.Label lblError2;
protected System.Web.UI.WebControls.Label lblSum;
protected System.Web.UI.HtmlControls.HtmlInputHidden hiUserId;
#region user defined private variables
private string sUserId;
private double dSum;
private string sOrderId;
#endregion
private void Page_Load(object sender, System.EventArgs e)
{
// 判断用户是否登录
if(!object.Equals(Session["UserId"],null))
{
sUserId = Session["UserId"].ToString();
lblUserName.Text = Session["UserName"].ToString();
//绑定用户信息
ShowUser();
//绑定购物车信息
ShowCart();
}
else
Response.Redirect("userEntry.aspx");
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.btnSure.Click += new System.EventHandler(this.btnSure_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
/// <summary>
/// 显示用户信息
/// </summary>
private void ShowUser()
{
try
{ //定义查询注册用户的基本信息
string sSql = "select UserId,Name,Phone,Email,Address,Post from Users where UserId=" + sUserId;
//调用类中的方法
DataSet oDS = OleBase.ExecuteSql4Ds(sSql);
DataRow oDR = oDS.Tables[0].Rows[0];
//将用户的信息绑定到文本框中
hiUserId.Value = oDR.ItemArray[0].ToString();
txtLinkMan.Text = oDR.ItemArray[1].ToString();
txtPhone.Text = oDR.ItemArray[2].ToString();
txtEmail.Text = oDR.ItemArray[3].ToString();
txtAddress.Text = oDR.ItemArray[4].ToString();
txtPost.Text = oDR.ItemArray[5].ToString();
}
catch(Exception e)//错误处理
{
lblError2.Text = e.Message;
}
}
/// <summary>
/// 显示购物车中的信息
/// </summary>
private void ShowCart()
{
try
{
DataTable oDT = new DataTable();
oDT.Columns.Add("ProductId");
oDT.Columns.Add("PName");
oDT.Columns.Add("PMemberPrice");
oDT.Columns.Add("PNumber");
dSum = 0;
//判断购物车是否有商品
if(!object.Equals(Session["ProductInCart"],null))
{
Hashtable oHT = (Hashtable)Session["ProductInCart"];
IDictionaryEnumerator oIDE = oHT.GetEnumerator();
DataRow oDR;
while(oIDE.MoveNext())
{
oDR = oDT.NewRow();
//定义查询商品信息的sql语句
string sSql = "Select ProductId,PName,PMemberPrice from product where ProductId=" + oIDE.Key.ToString();
DataSet oDS = OleBase.ExecuteSql4Ds(sSql);
oDR["ProductId"] = oDS.Tables[0].Rows[0].ItemArray[0].ToString();
oDR["PName"] = oDS.Tables[0].Rows[0].ItemArray[1].ToString();
oDR["PMemberPrice"] = oDS.Tables[0].Rows[0].ItemArray[2].ToString();
oDR["PNumber"] = oIDE.Value.ToString();
dSum += double.Parse(oDR["PMemberPrice"].ToString())*int.Parse(oDR["PNumber"].ToString());
oDT.Rows.Add(oDR);
}
}
grdShopList.DataSource = oDT.DefaultView;
grdShopList.DataBind();
//将商品的总额绑定到Lblsum文本框中
lblSum.Text = dSum.ToString();
}
catch(Exception e)//错误处理
{
lblError.Text = e.Message;
}
}
private void btnSure_Click(object sender, System.EventArgs e)
{
try
{
////根据用户输入的信息构造Insert SQL语句将用户订单插入数据库
StringBuilder sbSql = new StringBuilder("insert into Orders (UserId,LinkMan,Email,Phone,PostalCode,Address,ReMark,SongHuoQixian,SongHuoFangShi,FuKuanFangShi,YiWaiChuLi) values (");
sbSql.Append(hiUserId.Value + ",");
sbSql.Append("\"" + txtLinkMan.Text + "\",");
sbSql.Append("\"" + txtEmail.Text + "\",");
sbSql.Append("\"" + txtPhone.Text + "\",");
sbSql.Append("\"" + txtPost.Text + "\",");
sbSql.Append("\"" + txtAddress.Text + "\",");
sbSql.Append("\"" + txtRemark.Text + "\",");
sbSql.Append("\"" + dropTime.SelectedValue + "\",");
sbSql.Append("\"" + dropSMode.SelectedValue + "\",");
sbSql.Append("\"" + dropFMode.SelectedValue + "\",");
sbSql.Append("\"" + radButton.SelectedValue + "\")");
Response.Write(sbSql.ToString()+"<br>");
OleBase.ExecuteSql(sbSql.ToString());
//查询刚刚插入的订单Id
sOrderId = OleBase.ExecuteSql4Value("select top 1 OrderId from Orders where UserId = " + sUserId + " order by OrderId desc").ToString();
//将订单中的每个产品的信息插入到订单细目信息数据表中
string[] aSqls = new string[grdShopList.Items.Count];
for(int i=0;i<grdShopList.Items.Count;i++)
{
sbSql.Length = 0;
sbSql.Append("insert into OrdersDetail (OrderId,ProductId,Quantity,UnitCost,ProductName) values (" + sOrderId + ",");
sbSql.Append("\"" + ((Label)grdShopList.Items[i].FindControl("lblProductId")).Text + "\",");
sbSql.Append("\"" + ((Label)grdShopList.Items[i].FindControl("lblNumber")).Text + "\",");
sbSql.Append("" + ((Label)grdShopList.Items[i].FindControl("lblPrice")).Text + ",");
sbSql.Append("\"" + ((Label)grdShopList.Items[i].FindControl("lblProductName")).Text + "\");");
aSqls[i] = sbSql.ToString();
Response.Write(aSqls[i]+"<br>");
}
OleBase.ExecuteSqls(aSqls);
Response.Redirect("checkOutComplete.aspx?Mode=" + dropSMode.SelectedValue + "&OrderId=" + sOrderId);
}
catch(Exception ex)//错误处理
{
throw new Exception(ex.Message);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -