一. 创建存储过程:
-- =============================================
-- 添加书籍种类
-- =============================================
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);
}
}