事务处理
测试:
1.SQL查询分析器:
i. create table MyTransactionTest
(
userId int primary key identity
)
ii.
begin transaction TranStart
insert into MyTransactionTest default values
save transaction firstTransaction
insert into MyTransactionTest default values
rollback transaction firstTransaction
insert into MyTransactionTest default values
save transaction secondTransaction
insert into MyTransactionTest default values
rollback transaction secondTransaction
insert into MyTransactionTest default values
commit transaction TranStart
iii.
select * from MyTransactionTest
结果:
2.VS2005
SqlConnection con = new SqlConnection("server=(local);DataBase=db;User ID=sa;PWD=");
con.Open();
SqlTransaction st = con.BeginTransaction();//通过SqlConnection的BeginTransaction方法创建名为st的对象Transaction
SqlCommand com = con.CreateCommand();
com.Transaction = st;//将SqlTransaction对象分配给SqlCommand对象的Transaction属性
try
{
com.CommandText = ""; // 省略, 关于数据表的操作
com.ExecuteNonQuery();
//向日志表中插入数据
com.CommandText = "";// 省略
com.ExecuteNonQuery();
st.Commit();//提交事物
Response.Write("<script>alert('注册成功!');location='javascript:history.go(-1)'</script>");
}
catch (Exception error)
{
st.Rollback();//回滚事物
}