ASP.NET里的事务处理

手把手教你用STM32F103的普通IO口读取SSI编码器(附完整代码与示波器调试心得) 本文详细介绍了如何利用STM32F103的普通IO口读取SSI绝对式编码器数据,提供完整的硬件连接方案、精确时序控制的软件实现及示波器调试技巧。通过低成本方案实现高精度位置反馈,适用于工业自动化和机器人控制领域。 阅读详情
事务是一组组合成逻辑工作单元的数据库操作,虽然系统中可能会出错,但事务将控制和维护每个数据库的一致性和完整性。如果在事务过程中没有遇到错误,事务中的所有修改都将永久成为数据库的一部分。如果遇到错误,则不会对数据库作出任何修改。

  例如,在一个银行应用程序中,如果资金从一个帐户转到另一个帐户,则会将一定的金额记入一个帐户的贷方,同时将相同的金额记入另一个帐户的借方。由于计算机可能会因为停电、网络中断等原因而出现故障,所以有可能更新了一个表中的行,但没有更新相关表中的行。如果数据库支持事务,则可以将数据库操作组成一个事务,以防止因这些事件而使数据库出现不一致。

  在 ADO.NET 中,可以使用 Connection 和 Transaction 对象来控制事务。若要执行事务,请执行下列操作:

  调用 Connection 对象的 BeginTransaction 方法来标记事务的开始。BeginTransaction 返回对 Transaction 的引用。请保留此引用,以便将其分配给在事务中登记的 Command。

  将 Transaction 对象分配给要执行的 Command 的 Transaction 属性。如果通过活动的 Transaction 对象对 Connection 执行 Command,但该 Transaction 对象尚未分配给 Command 的 Transaction 属性,则将引发异常。

  执行所需的命令。

  调用 Transaction 对象的 Commit 方法来完成事务,或调用 Rollback 方法来取消事务。

  以下代码示例使用 Microsoft? SQL Server? 上的 ADO.NET 来演示事务逻辑。

SqlConnection myConnection = new SqlConnection("Data Source=localhost;Initial Catalog=Northwind;Integrated Security=SSPI;");
myConnection.Open();
// 启动一个事务
SqlTransaction myTrans = myConnection.BeginTransaction();

// 为事务创建一个命令
SqlCommand myCommand = new SqlCommand();
myCommand.Connection=myConnection;
myCommand.Transaction = myTrans;
try
{
myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (100, "Description")";
myCommand.ExecuteNonQuery();
myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (101, "Description")";
myCommand.ExecuteNonQuery();
myTrans.Commit();
Console.WriteLine("Both records are written to database.");
}
catch(Exception e)
{
myTrans.Rollback();
Console.WriteLine(e.ToString());
Console.WriteLine("Neither record was written to database.");
}
finally
{
myConnection.Close();
}

C51单片机驱动ILI9341彩屏实战:从Proteus仿真到绘制自定义图案(附完整代码) 本文详细介绍了使用C51单片机驱动ILI9341彩屏的完整实战流程。内容涵盖硬件连接、8080并行接口时序模拟、寄存器初始化、屏幕方向设置以及基本图形绘制原理,并重点讲解了如何在Proteus仿真环境中搭建电路、调试代码,最终实现自定义图案的显示。文章提供了完整的代码示例,为嵌入式开发学习者和复古硬件爱好者提供了一套可行的解决方案。 阅读详情

相关推荐

ora报错及解决方案

ora报错分类及解决方案

C#中事务的简单使用

在C#中开启事务的步骤 一、调用SqlConnection对象的BeginTransaction()方法,创建一个SqlTransaction对象,标志事务开始。 二、将创建的SqlTransaction对象分配给要执行的SqlCommand的Transaction属性。 三、调用相应的方法执行SqlCommand命令。 四、调用SqlTransaction的Commit()方法完成事...

机械键盘侠博客 1088

世界矢量地图 全球行政边界 shp格式

世界矢量地图 全球行政边界 shp格式

.net应用程序结构,以及 C# 事务Transaction

应用程序域(application Domain =>appDomain),一组程序集的一个逻辑容器,进程中的一个逻辑分区。通常由运行时宿主创建和操作。appDomain唯一的作用就是进行隔离。应用程序域、程序集、模块、类型、成员,是层层包含的关系。

Kaizen的博客 257

ASP.NET 事物(Transaction)的使用

只有当所有的命令都提交成功时才向数据库提交数据,否则只要有一条不能执行成功就不向数据库提交 示例: SqlTransaction trans = sqlCnn.BeginTransaction(); //启动一个事物 sqlCmm.Transaction = trans; //为事物创建命令 try { foreach (DataRow row in table.Rows) ...

web开发 468

事务处理

最近想解决跨数据库的解决方案,查了一些资料,没有跨数据库外键,但可以实现跨数据库事务,也算了一点补偿了吧。 SET   XACT_ABORT     ON     GO     BEGIN   TRAN           insert   into   DB_B.dbo.Table1   select   *   from     DB_A.dbo.Table1   where  

guaiguaigirlma的专栏 613

ORACLE ORA错误码大全 (备忘)

ORA-00001: 违反唯一约束条件 (.) ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 ORA-00019: 超出最大会话许可数 ORA-00020: 超出最大进程数 () ORA-00021: 会话附属于其它某些进程;无法转换会话 ORA-00022: 无效的会话 ID;访问被拒绝 ORA-00023: 会话引用进程私用内存;无法分离会话 ORA-00...

will_legend的博客 9239
上一篇: 在ASP.NET中使用用户控件(转)
下一篇: 一种动态网络负载平衡集群的实践方法(转)
ycl111
博客等级 码龄22年 25粉丝 275原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值