网络编程中,事务回滚机制在发生错误时如何实现?
- 内容介绍
- 文章标签
- 相关推荐
本文共计350个文字,预计阅读时间需要2分钟。
在存在大量数据插入的情况下,使用事务控制程序的逻辑比较实用,成功则全部插入,失败则回滚到特定点。
代码如下:csharpprotected void Button1_Click(object sender, EventArgs e){ if (this.) { // 事务开始 using (TransactionScope scope=new TransactionScope()) { try { // 数据插入逻辑 // ...
// 事务提交 scope.Complete(); } catch { // 事务回滚 throw; } } }}
如果存在多条数据插入的情况下,使用事务控制程序的逻辑比较实用的,成功则全部插入,失败一条则回滚到特定点;
代码如下:
protected void Button1_Click(object sender, EventArgs e)
{
if (this.TextBox1.Text!="")
{
SqlConnection sc= help.con();
sc.Open();
// string str = "insert into cs(Fcate) values('"+this.TextBox1.Text.Trim()+"')";
SqlTransaction tr= sc.BeginTransaction();//定义事务
SqlCommand cmd = new SqlCommand("cs_Insert", sc);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Transaction = tr;//设置事务
cmd.Parameters.Add(new SqlParameter("@fcate", SqlDbType.VarChar,128)).Value=this.TextBox1.Text.Trim();
try
{
cmd.ExecuteNonQuery();
//先执行某个事,执行完有错误后会被catch捕捉,执行回滚,否则会提交事务;
tr.Commit();
sc.Close();
this.Bind();
}
catch
{
Response.Write("<script>alert('执行事务回滚')</script>");
tr.Rollback();//回滚事务
}
}
}
截图:
本文共计350个文字,预计阅读时间需要2分钟。
在存在大量数据插入的情况下,使用事务控制程序的逻辑比较实用,成功则全部插入,失败则回滚到特定点。
代码如下:csharpprotected void Button1_Click(object sender, EventArgs e){ if (this.) { // 事务开始 using (TransactionScope scope=new TransactionScope()) { try { // 数据插入逻辑 // ...
// 事务提交 scope.Complete(); } catch { // 事务回滚 throw; } } }}
如果存在多条数据插入的情况下,使用事务控制程序的逻辑比较实用的,成功则全部插入,失败一条则回滚到特定点;
代码如下:
protected void Button1_Click(object sender, EventArgs e)
{
if (this.TextBox1.Text!="")
{
SqlConnection sc= help.con();
sc.Open();
// string str = "insert into cs(Fcate) values('"+this.TextBox1.Text.Trim()+"')";
SqlTransaction tr= sc.BeginTransaction();//定义事务
SqlCommand cmd = new SqlCommand("cs_Insert", sc);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Transaction = tr;//设置事务
cmd.Parameters.Add(new SqlParameter("@fcate", SqlDbType.VarChar,128)).Value=this.TextBox1.Text.Trim();
try
{
cmd.ExecuteNonQuery();
//先执行某个事,执行完有错误后会被catch捕捉,执行回滚,否则会提交事务;
tr.Commit();
sc.Close();
this.Bind();
}
catch
{
Response.Write("<script>alert('执行事务回滚')</script>");
tr.Rollback();//回滚事务
}
}
}

