asp.net中使用带参数的存储过程

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();
     }
  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值