CSDN博客

img add8849

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

发表于2004/9/29 9:19:00  1041人阅读

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

阅读全文
0 0

相关文章推荐

img
取 消
img