存储过程的定义:
CREATE procedure pro_buyGoods
(
@GoodsName varchar(30),
@GoodsNum int
)
AS
declare @count as int
set @count = (select count(*) from T_Goods where GoodsName=@GoodsName)
if @count<=0 begin
insert into T_Goods values (@GoodsName,@GoodsNum)
end
else begin
update T_Goods set GoodsNum=GoodsNum+@GoodsNum where GoodsName=@GoodsName
end
GO
说明:语法是通过检查的,这个过程是用来判断T_Goods表中有没有指定的商品,有的话则增加他的数目,没有的话新添加记录。
这是在ASP.NET中的调用过程:
int BuyGoodsID = Convert.ToInt32(this.txtBuyID.Text);
string GoodsName = this.txtGoodsName.Text;
int GoodsNum = Convert.ToInt32(this.txtGoodsNum.Text);
int GoodsPrice = Convert.ToInt32(this.txtGoodsPrice.Text);
SqlConnection conn = DB.CreateCon();
conn.Open();
string cmdText = "insert into T_BuyGoods values('"+BuyGoodsID+"','"+GoodsName+"','"+GoodsNum+"','"+GoodsPrice+"')";
SqlCommand cmd = new SqlCommand(cmdText,conn);
SqlTransaction trans = conn.BeginTransaction();
cmd.Transaction = trans;
try
{
cmd.ExecuteNonQuery();
//插入库存表的代码
SqlCommand cmd1 = new SqlCommand("pro_buyGoods",conn);
cmd1.CommandType = CommandType.StoredProcedure;
cmd1.Parameters.Add("@GoodsName",SqlDbType.VarChar);
cmd1.Parameters.Add("@GoodsNum",SqlDbType.Int);
cmd1.Parameters["@GoodsName"].Direction=ParameterDirection.Input;
cmd1.Parameters["@GoodsNum"].Direction=ParameterDirection.Input;
cmd1.Parameters["@GoodsName"].Value = GoodsName;
cmd1.Parameters["@GoodsNum"].Value = GoodsNum;
cmd1.ExecuteNonQuery();
this.Panel1.Visible = false;
this.Panel2.Visible = true;
this.lblInfo.Text = "提交成功!";
trans.Commit();
}
catch(Exception exp)
{
trans.Rollback();
Response.Write("
相关阅读
热门文章
诛仙3飞升任务怎么做-诛仙3飞升任务流程最新2022
钟离圣遗物推荐-原神钟离圣遗物词条
解决方法:应用程序“DEFAULT WEB SITE”中的服务器错误
使用aspnet_regiis.exe 重新注册.NET Framework
人气排行 诛仙3飞升任务怎么做-诛仙3飞升任务流程最新2022 asp.net表单提交方法GET\POST 在ASP.NET中如何判断用户IE浏览器的版本 Asp.net中messagebox的实现方法 Asp.net中的web.config配置 在ASP.NET MVC中实现大文件异步上传 asp.net获取URL和IP地址 FileUpload上传多文件出现错误的解决方法
查看所有0条评论>>