CREATE PROCEDURE spAddShoppingCart
@user_id varchar(50), @title_id varchar(6)
AS
Declare @Title varchar(80), @Price money
if exists(select * from ShoppingCart where title_id=@title_id)
/* 如果购买了本书,直接更新数量 */
begin
update ShoppingCart set quantity=quantity+1 where title_id=@title_id
end
else
/* 如果尚未购买本书,加入ShoppingCart */
begin
/* 取得书籍名称及价格 */
select @Title=Title,@Price=Price from Titles where title_id = @title_id
/* 新增书籍到ShoppingCart */
insert into ShoppingCart (user_id,title_id,title,quantity,price)
values (@user_id,@title_id,@Title,1,@Price)
end
GO
关键代码:
private void AddOrder () {
SqlConnection cn = new SqlConnection((String) ConfigurationSettings.AppSettings["NETBooksDB"]);
// 指定存储过程
SqlCommand cmd=new SqlCommand();
cmd.Connection=cn;
cmd.CommandType=CommandType.StoredProcedure;
cmd.CommandText="spAddShoppingCart";
// 设定 user_id 参数
cmd.Parameters.Add("@user_id", SqlDbType.VarChar,50).Value= Context.User.Identity.Name;
// 设定 title_id 参數
NameValueCollection qs=Request.QueryString;
cmd.Parameters.Add("@title_id", SqlDbType.VarChar,6).Value= qs.Get("title_id");
try {
cn.Open();
cmd.ExecuteNonQuery();
cn.Close();
Response.Redirect("ShoppingCart.aspx");
}
catch (System.Data.SqlClient.SqlException e) {
if (e.Number != 0) {
lblMsg.Style["color"] = "red";
lblMsg.Text = "ERROR:" + "[" +e.Number.ToString()+"]"+ e.ToString();
}
}