/*
update bank set ammonut=amonut-金额 where id=转出账号
update bank set ammonut=amonut+金额 where id=转入账号
*/
create table Bank(id int identity,amonut float)
insert into Bank values(100)
insert into Bank values (1000)
select * from Bank
alter table Bank
add constraint CH_amonut check (amonut>=10)
------------------------------------------------------------
Sql Server存储过程:
create proc usp_Bank_trans
@outputNumber int,
@inputNumber int,
@moneyNumber money
as
begin
begin tran
begin try
declare @errorsum int=0
update Bank set amonut=amonut-@moneyNumber where id=@outputNumber
set @errorSum=@errorSum+@@error
update Bank set amonut=amonut+@moneyNumber where id=@inputNumber
set @errorSum=@errorSum+@@error
commit
print '提交!!'
end try
begin catch
rollback
print '回滚!'
end catch
end
--------------------------------------------------------------------------------------------------
aspx前台:
app.configer:
<connectionStrings>
<add name="MySchoolconStr" connectionString="Data Source=PC_THINK-THINK;Initial Catalog=MySchool;User ID=sa; Password=111111"/>
</connectionStrings>
后台代码:
string Constr = ConfigurationManager.ConnectionStrings["MySchoolconStr"].ConnectionString;
protected void btnZhiXing_Click(object sender, EventArgs e)
{
using (SqlConnection conn = new SqlConnection(Constr))
{
conn.Open();
string sp_name = "usp_Bank_trans";
using (SqlCommand cmd = new SqlCommand(sp_name, conn))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@outputNumber", txtoutputNumber.Text));
cmd.Parameters.Add(new SqlParameter("@inputNumber", txtinputNumber.Text));
cmd.Parameters.Add(new SqlParameter("@moneyNumber", txtmoneyNumber.Text));
int r = cmd.ExecuteNonQuery();
if (r > 0)
{
Label1.Text = "转入成功!";
}
else
{
Label1.Text = "转入失败!";
}
}
}
}
----------------------------------------------------------------------------------------------------