使用SqlTransaction实现数据库操作事务
SqlTransaction类是对SQL Server数据库进行事务处理的类,该类的实例由SqlConnection类实例的BeginTransaction方法创建,表示在该数据库连接实例上开始一个数据库事务,创建SqlTransaction类实例后,在程序中使用该实例的Commit方法提交事务,或者使用该类的Rollback方法回滚事务。
SqlTransaction示例
下面的示例创建一个 SqlConnection 和一个 SqlTransaction。此示例演示如何使用BeginTransaction、Commit 和 Rollback 等方法。出现任何错误时事务都会回滚。Try/Catch 错误处理用于处理尝试提交或回滚事务时的所有错误。
using System; using System.Data; using System.Data.SqlClient; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using CNTVS.TOOLS; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { SqlConnection conn = Database.GetConn(); SqlTransaction st = conn.BeginTransaction(); try { string sql = "Insert Into T_Test(F_Name) values('A')"; Database.ExecuteNonQuery(st, CommandType.Text, sql); //这里会报错,在挂起的事务中,该事务分配的连接,不能再独占使用 //string A = Database.ExecuteScalarToStr(conn,CommandType.Text,"Select F_ID From T_Test where F_Name='A'"); sql = "Insert Into T_Test2(F_ID,F_Age) values(1,2)"; Database.ExecuteNonQuery(st, CommandType.Text, sql); st.Commit(); } catch (Exception Ex) { st.Rollback(); Website.WriteError(Ex); } finally { Database.Dispose(conn); } } }
参考资料: SqlTransaction事务的用法 http://www.studyofnet.com/news/193.html
相关推荐
本篇文章将详细探讨SqlTransaction的使用方法及其重要性。 事务处理的基本原理是确保一系列数据库操作作为一个不可分割的工作单元执行。如果这个单元中的所有操作都能成功完成,那么事务会被提交,所有的更改会永久...
ado.net2.0的SqlTransaction使用方法 /////ado.net1.0中使用Transacation(事务) string connectionString = database=Northwind;pwd=admin;uid=sa;server=DATABASE-VPC\\SQL2005; using (SqlConnection conn = new...
在ASP.NET中,我们可以使用SqlTransaction对象来管理SQL Server数据库中的事务。SqlTransaction对象是System.Data.SqlClient命名空间的一部分,它允许我们开始、提交或回滚数据库事务。下面是如何创建和使用...
* 使用 `SqlTransaction` 对象:这是最常用的方式,使用 `SqlTransaction` 对象可以实现事务处理。 * 使用 `TransactionScope` 对象:这是一个更高级的方式,使用 `TransactionScope` 对象可以实现事务处理,并且...
3. **使用SQLHelper执行命令**:在事务中,你可以使用SQLHelper的静态方法如`ExecuteNonQuery`、`ExecuteScalar`或`ExecuteReader`来执行SQL命令。这些方法接受一个SqlTransaction参数,将命令绑定到当前事务中。 4...
4. **提交或回滚事务**:如果所有的操作都成功,使用`SqlTransaction`对象的`Commit()`方法提交事务;如果有任何错误,调用`Rollback()`方法回滚事务。 ```csharp try { // SQL操作 transaction.Commit(); } ...
二、SqlTransaction事务 SqlTransaction是Sql Server提供的一种事务机制,可以手动控制事务的提交和回滚。例如: ```csharp using (SqlConnection conn = new SqlConnection("Data Source=(local);Initial Catalog=...
下面将介绍一种使用.NET框架中的`SqlTransaction`对象实现简单事务处理的方法。 #### 三、使用.NET Framework中的SqlTransaction实现事务 1. **创建连接**:首先需要创建一个到数据库的连接。 2. **启动事务**:...
C#_使用事务不仅限于EF,我们也可以直接使用ADO.NET,通过SqlConnection的BeginTransaction()方法创建一个SqlTransaction对象,然后在操作数据库的过程中,利用Transaction属性进行控制。这种方式更加底层,灵活性更...
- 如果所有操作都成功,调用SqlTransaction的Commit()方法提交事务,将更改保存到数据库。 - 如果在执行过程中出现错误,调用Rollback()方法回滚事务,撤销所有更改,保持数据库的一致性。 3. **控件处理与代码...
在ADO.NET中,可以使用`SqlConnection`类的方法`BeginTransaction()`来启动一个事务。事务可以通过调用`Transaction.Commit()`方法提交,或者通过`Transaction.Rollback()`方法回滚。 **示例代码**: ```csharp ...
ADO.NET事务是通过`System.Data.SqlClient.SqlTransaction`类来实现的,它允许在同一数据库连接上进行多条SQL语句的事务处理。这种方式简单易用,但不支持跨数据库事务。示例如下: ```csharp public void ...
2. **创建事务**:使用`SqlConnection`对象的`BeginTransaction`方法开始一个新的事务。 3. **关联事务**:将`SqlTransaction`对象与`SqlCommand`对象关联起来,这样所有的SQL命令都会在这个事务上下文中执行。 4....
上述代码演示了如何在C#中使用`SqlConnection`和`SqlTransaction`对象来开始一个事务,执行更新操作,并根据是否成功决定提交还是回滚事务。 #### 结论 事务机制是SQL数据库中确保数据一致性和完整性的重要手段。...
5. 如果所有操作成功,提交事务(SqlTransaction的Commit方法);如果出现错误,回滚事务(Rollback方法)。 6. 关闭并释放所有资源。 示例代码: ```csharp using (SqlConnection connection = new SqlConnection...
代码示例展示了如何在.NET中使用`SqlConnection`和`SqlTransaction`来实现事务控制: ```csharp SqlConnection conn = new SqlConnection(VAT.Config.GlobeParameter.GetStrConnection()); SqlTransaction trans; ...
如果所有操作都成功,可以使用`Commit`方法提交事务,将所有更改保存到数据库: ```csharp try { // 执行SQL命令,比如更新库存 SqlCommand command1 = new SqlCommand("UPDATE Products SET Stock -= 1 WHERE ID...
例如,可以使用`System.Data.SqlClient.SqlConnection`的`BeginTransaction()`方法开启一个事务,`Commit()`或`Rollback()`方法分别提交或回滚事务。下面是一个简单的C#示例: ```csharp using (SqlConnection ...
2. **事务开启**:使用`BeginTransaction`方法开始一个新事务,并指定事务的隔离级别为`RepeatableRead`。 3. **执行SQL语句**:通过循环遍历传递进来的SQL语句列表(`ArrayList`类型),并依次执行每个SQL语句。 4. *...
2. **ADO.NET事务管理**:在ADO.NET中,我们通常使用`System.Data.SqlClient.SqlTransaction`类来处理SQL Server的事务。首先,我们需要打开一个连接,然后创建一个事务对象,并在连接上开始事务。 3. **多适配器...