一带输出参数存储过程的完整操作

来源:互联网 发布:比价软件怎么用 编辑:程序博客网 时间:2024/06/05 08:46

一. 创建存储过程:
-- =============================================
-- 添加书籍种类
-- =============================================
ALTER PROCEDURE [dbo].[AddBookType]
    @Type_Name varchar(50),
    @Type_FatherTypeID int,
    @IsAdd int output
AS
BEGIN
 if(exists(select Type_Name from BookCategory where Type_Name=@Type_Name and Type_FatherTypeID=@Type_FatherTypeID))
    begin
      set @IsAdd = 1
    end
    else
    begin
      insert into BookCategory(Type_Name,Type_FatherTypeID) values(@Type_Name,@Type_FatherTypeID)
      set @IsAdd = 0
    end
END

二. 数据访问层的操作:
        /// <summary>
        /// 添加书籍种类名称
        /// </summary>
        /// <param name="bookType">数据类别</param>
        /// <param name="result">输出参数,判断要添加的书籍类别是否存在</param>
        /// <returns></returns>
        public DataSet Add(Model.BookCategory bookType, out int result)
        {
            try
            {
                SqlParameter[] parameters = new SqlParameter[] {
           new SqlParameter("@Type_Name",SqlDbType.VarChar,50),
           new SqlParameter("@Type_FatherTypeID",SqlDbType.Int),
           new SqlParameter("@IsAdd",SqlDbType.Int)
          };
                parameters[0].Value = bookType.Type_Name;
                parameters[1].Value = bookType.Type_FatherTypeID;
                parameters[2].Direction = ParameterDirection.Output; //注意输出参数的写法:没有Value值,而是赋予Direction属性。

                DataSet ds = DbHelperSQL.RunProcedure("AddBookType", parameters, "BookCategory");
                result = Convert.ToInt32(parameters[2].Value);
                return ds;
            }
            catch (System.Data.SqlClient.SqlException ee)
            {
                result = 1;
                throw new Exception(ee.Message);
            }
        }
三. 表现层的后台代码实现:
    protected void btn_Add_Click(object sender, EventArgs e)
    {
        Model.BookCategory bookcategory = new Model.BookCategory();
        bookcategory.Type_Name = this.txt_TypeName.Text.Trim();

        int fatherID = Convert.ToInt32(this.DropDownList1.SelectedValue);
        bookcategory.Type_FatherTypeID = fatherID;

        int result = 1;
        BLL.BookCategory bookType = new BLL.BookCategory();
        DataSet ds = bookType.AddBookCategory(bookcategory, out result);
        if (result == 1)
        {          
            Page.ClientScript.RegisterStartupScript(this.btn_Add.GetType(), "key1", "alert('该书籍种类已存在,请重新输入!')", true);
        }
        else
        {
            this.BindDropDList();         
            Page.ClientScript.RegisterStartupScript(this.btn_Add.GetType(), "key1", "alert(''添加成功!')", true);
        }
    }     

原创粉丝点击