当前位置: 首页 > 编程日记 > 正文

ASP.NET里的事务处理

出自: http://blog.csdn.net/ycl111/
事务是一组组合成逻辑工作单元的数据库操作,虽然系统中可能会出错,但事务将控制和维护每个数据库的一致性和完整性。如果在事务过程中没有遇到错误,事务中的所有修改都将永久成为数据库的一部分。如果遇到错误,则不会对数据库作出任何修改。

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

在 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();
}

相关文章:

JAVA的正则表达式语法

Java 正则表达式表达式意义:1.字符x 字符 x。例如a表示字符a\\ 反斜线字符。在书写时要写为\\\\。(注意:因为java在第一次解析时,把\\\\解析成正则表达式\\,在第二次解析时再解析为\,所以凡是不是1.1列举到的转义…

应届生失业率或继续上升?别怕,这份秋招指南请收好!

受疫情影响,今年的就业形势基本上没跑了:“各行各业,大小企业,全面缩招!”据国家统计局7月份的最新数据显示:20-24岁大专及以上人员(主要为新毕业大学生)失业率比去年同期高 3.3 个百…

微信小程序把玩(三十五)Video API

原文:微信小程序把玩(三十五)Video API电脑端不能测试拍摄功能只能测试选择视频功能,好像只支持mp4格式,值得注意的是成功之后返回的临时文件路径是个列表tempFilePaths而不是tempFilePath文档写的有点问题。 主要属性&#xff1a…

使用.NET发送邮件

出自: http://blog.csdn.net/ycl111/如果你曾经使用过ASP来发送邮件,你大概会使用CDONTS,但是在.NET里,发送邮件的功能已经封装进 .NET Framework的System.Web.Mail的命名空间里了,使用这个命名空间下类,就可以很容易…

采摘工人月薪十万却无人应聘,英澳农场求助 AI

作者 | 神经小兮来源 | HyperAI超神经金秋时节,本是收获的季节,但是英国、澳大利亚等地的果农却愁容满面。眼看着日渐成熟的瓜果就要烂在地里,却还招不到采摘工人。缺人,成为果农们眼下急需解决的问题。虽然大型联合收割机早已普及…

好记性不如烂笔杆-android学习笔记二 Acitvity lifecycle 生命周期

7,//Acitvity lifecycle 生命周期/***1,一个Activity就是一个类,并且这个类要继承Activity*2,复写onCreate方法*3,每个Activity需要在Androidmanifest.xml文件中配置*4,为Activity添加控件*/ 1 public class Activity …

hdu5740

考验代码能力的题目,感觉网络流一要求输出方案我就写的丑 http://www.cnblogs.com/duoxiao/p/5777632.html 官方题解写的很详细 因为如果一个点染色确定后,整个图的染色也就确定了; 对于两个点u和v, 令它们之间的最短路是dis(u,v), 那么交换它…

xml操作类(转载)

作者&#xff1a;未知 请与本人联系 <%Class XMLDOMDocument Private fNode,fANode Private fErrInfo,fFileName,fOpen Dim XmlDom 返回节点的缩进字串 Private Property Get TabStr(byVal Node) TabStr"" If Node Is Nothing Then Exit Property …

对HDS AMS 2000+巡检案例

1. 使用工具&#xff1a;笔记本&#xff0c;网线一根&#xff0c; 2. 使用软件&#xff1a;vmware虚拟机&#xff08;安装XP P2系统&#xff0c;最好为P3&#xff09;&#xff0c;HSNM2-1152-W-CLI-P01.exe&#xff08;AMS 200管理软件&#xff09;&#xff0c;jre…

用Python实现坦克大战游戏 | 干货贴

作者 | 李秋键出品 | AI科技大本营&#xff08;rgznai100&#xff09;《坦克大战》是1985年日本南梦宫Namco游戏公司在任天堂FC平台上&#xff0c;推出的一款多方位平面射击游戏。游戏以坦克战斗及保卫基地为主题&#xff0c;属于策略型联机类。同时也是FC平台上少有的内建关卡…

SPU、SKU、ARPU是什么,我来记录一下我的理解

在电商系统里经常会提到“商品”、“单品”、“SPU”、“SKU”这几个词&#xff0c;那么这几个词到底是什么意思呢&#xff1f;既然不知道是什么&#xff0c;那么我们就查一下&#xff1a;SPU Standard Product Unit &#xff08;标准化产品单元&#xff09;&#xff0c;SKUst…

用C#操纵IIS(代码)

using System;using System.DirectoryServices;using System.Collections;using System.Text.RegularExpressions;using System.Text;/*** author 吴海燕* email wuhy80-usualyahoo.com* 2004-6-25 第一版*/ namespace Wuhy.ToolBox{/// <summary>/// 这个类是静态类。…

linux 内核参数调整说明

linux 内核参数调整说明 所有的TCP/IP调优参数都位于/proc/sys/net/目录。例如, 下面是最重要的一些调优参数, 后面是它们的含义: 1. /proc/sys/net/core/rmem_max — 最大的TCP数据接收缓冲。2. /proc/sys/net/core/wmem_max — 最大的TCP数据发送缓冲。3. /proc/sys/net/ipv4…

Java 最高均薪 19015 元! 9 月程序员工资出炉,你拖后腿了吗?

在全员争当码农的时代&#xff0c;如果你也想学一门编程语言&#xff0c;那么&#xff0c;我要告诉你&#xff0c;Java 是编程语言中不可撼动的王者。有点难理解&#xff1f;先看个排行榜???? 来自权威开发语言排行榜 TIOBE 的数据&#xff08;截止到 2020 年 4 月&#x…

java 基础知识八 正则表达式

正则表达式 是一种可以用于模式匹配和替换的规范&#xff0c; 一个正则表达式就是由普通的字符&#xff08;例如字符a到z&#xff09;以及特殊字符&#xff08;元字符&#xff09;组成的文字模式&#xff0c; 用以描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为…

PHP中Session的使用

启用配置//修改php.ini中的session.auto_start 0 为 session.auto_start 1session_start();$_SESSION[username]"HM";

《Two Dozen Short Lessons in Haskell》学习(八)- Function Types, Classes, and Polymorphism

《Two Dozen Short Lessons in Haskell》&#xff08;Copyright © 1995, 1996, 1997 by Rex Page&#xff0c;有人翻译为Haskell二十四学时教程&#xff0c;该书如果不用于赢利&#xff0c;可以任意发布&#xff0c;但需要保留他们的copyright&#xff09;这本书是学习 Ha…

图神经网络快速爆发,最新进展都在这里了

译者 | 刘畅出品 | AI科技大本营&#xff08;rgznai100&#xff09;近年来&#xff0c;图神经网络&#xff08;GNNs&#xff09;发展迅速&#xff0c;最近的会议上发表了大量相关的研究论文。本文作者正在整理一个GNN的简短介绍和最新研究报告的摘要。希望这对任何准备进入该领…

css去掉a标签点击后的虚线框

outline是css3的一个属性&#xff0c;用的很少。 声明&#xff0c;这是个不能兼容的css属性&#xff0c;在ie6、ie7、遨游浏览器都不兼容。 outline控制的到底是什么呢&#xff1f; 当聚焦a标签的时候&#xff0c;在a标签的区域周围会有一个虚线的框&#xff0c;这个框不同于bo…

在SQL Server中保存和输出任意类型的文件

我们可以把任意类型的文件保存到SQL Server中&#xff0c;在进行例子之前&#xff0c;先建立测试用表格&#xff0c;TestFile.sql&#xff1a;if exists (select * from dbo.sysobjects where id object_id(N[dbo].[TestFiles]) and OBJECTPROPERTY(id, NIsUserTable) 1) dro…

工作中InnoDB引擎数据库主从复制同步心得

近期将公司的MySQL架构升级了&#xff0c;由原先的一主多从换成了DRBDHeartbeat双主多从&#xff0c;正好手上有一个电子商务网站新项目也要上线了&#xff0c;用的是DRBDHeartbeat双主一从&#xff0c;由于此过程还是有别于以前的MyISAM引擎的&#xff0c;所以这里也将其心得归…

面试官:因为这个语言,我淘汰了90%的人!

很多人都有这样的经历&#xff1a;大量重复性工作&#xff1b;日报、周报、各种报&#xff0c;无穷无尽&#xff1b;不计其数的数据提取琐碎繁杂的事务让工作的效率极低。如果可以一键完成就好了。对这些问题来说&#xff0c;最高效的解决途径就是 Python。1991 年&#xff0c;…

SQL Server不能启动

SQL Server不能正常启动 I had a similar issue after uninstalling Visual Studio 2010 (which autmatically came with a Visual Studio Express 2013 install). I solved it by going through the follwing steps. Installing Visual Studio 2010 shell from here: https://…

ASP.NET 配置节架构

ASP.NET 配置节架构包含控制 ASP.NET Web 应用程序行为的元素。如果为属性指定了默认值&#xff0c;则该默认值是在 Machine.config 文件中设置的&#xff0c;该文件的路径是 systemroot/Microsoft.NET/Framework/versionNumber/CONFIG/Machine.config。 <configuration>…

IEEE迎来首位华人主席,马里兰大学终身教授刘国瑞当选

10月12日&#xff0c;IEEE宣布马里兰大学终身教授刘国瑞&#xff08;K. J. Ray Liu&#xff09;当选为2021年IEEE主席&#xff0c;他也是首位当选IEEE主席的华人学者&#xff0c;他将在明年1月开始接任现任IEEE主席Susan K. Kathy Land的职务。 在此次IEEE候选主席竞选中&#…

Visual C++ 2010 简介

VC是用来创建基于 Microsoft Windows 和 Microsoft .NET 的应用程序 原文地址&#xff1a;http://msdn.microsoft.com/zh-cn/library/60k1461a%28vvs.100%29.aspx提供了强大而灵活的开发环境&#xff0c;用于创建基于 Microsoft Windows 和 Microsoft .NET 的应用程序。您可以在…

Linux网络编程:基于UDP的程序开发回顾篇

基于无连接的UDP程序设计 同样&#xff0c;在开发基于UDP的应用程序时&#xff0c;其主要流程如下&#xff1a; 对于面向无连接的UDP应用程序在开发过程中服务端和客户端的操作流程基本差不多。对比面向连接的TCP程序&#xff0c;服务端少了listen和accept函数。前面我们也说过…

四款5G版iPhone 12齐发,苹果股价却应声而跌

整理 | 郑丽媛、屠敏题图 | 东方IC来源 | CSDN&#xff08;CSDNnews&#xff09;真快&#xff0c;又见面了。北京时间 10 月 14 日凌晨 1 点&#xff0c;Apple 举办的新品发布会如约而至。今年有关 iPhone 新品的到来有些迟&#xff0c;好在「5G just got real」&#xff0c;万…

Linux编译器GCC的使用

嵌入式Linux编译器GCC的使用 1、GCC概述 作为自由软件的旗舰项目&#xff0c;Richard Stallman在十多年前刚开始写作GCC的时候&#xff0c;还只是仅仅把它当作一个C程序语言的编译器&#xff0c;GCC的意思也只是GNU C Compiler而已。 经过了这么多年的发展&#xff0c;GCC已经不…

jquery兼容IE和火狐下focus()事件

<input type"text" id"my" name"my" /> <script type"text/javascript">$("#my").focus(); </script> 上面的代码在IE下是没有任何问题的,但是不兼容FF,在FF没有反应解决办法:兼容写法 IE和FF下focus()事…