事务是一组由相关任务组成的单元,该单元中的任务要么全部成功,要么全部失败,事务最终的执行结果只能是两种状态,即提交或终止
事务某一步失败了,会将事务范围内的数据更改恢复到事务执行前设置的特定点.
示例:
前提是创建一个数据库Music,表名为catalog,两列分别为id int , name varchar(50)
1.添加default页面,在页面中添加一个GridView,绑定到你的数据库
添加两个TextBox,ID分别为TextBox1和TextBox2
default.aspx.cs文件中添加命名空间
using System.Data.SqlClient;
using System.Configuration;
using System.Data;
web.config中,定义连接字串
<appSettings>
<add key="ConnectString" value="server=localhost;database=Music;UId=sa;password=1"/>
</appSettings>
定义GetConnection方法
public SqlConnection GetConnection()
{
string MyStr = ConfigurationManager.AppSettings["ConnectString"].ToString();
SqlConnection MyCon = new SqlConnection(MyStr);
return MyCon;
}
添加一个Button,在Click事件中添加如下代码
SqlConnection MyCon = GetConnection();
MyCon.Open();
string MyStr = "insert into catalog values('"+this.TextBox1.Text.Trim()+"','"+this.TextBox2.Text.Trim()+"')";
SqlCommand MyCmd = new SqlCommand(MyStr, MyCon);
SqlTransaction SqlTrans = MyCon.BeginTransaction();
MyCmd.Transaction = SqlTrans;//设置回滚的点
try
{
MyCmd.ExecuteNonQuery();
SqlTrans.Commit();//提交
MyCon.Close();
this.DataBind();
}
catch
{
Response.Write("<script>alert('插入失败,执行事务被回滚')</script>");
SqlTrans.Rollback();//回滚
}