大家好,又见面了,我是你们的朋友全栈君。
使用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
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/132696.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...