- 浏览: 281772 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
weituotian:
这篇文章真的很好阿
C#利用反射,遍历获得一个类的所有属性名,以及该类的实例的所有属性的值 -
clshuai:
博主,你好,看了你的这篇文章,让我很敬佩。可谓内容之全,涵盖范 ...
C#操作Excel -
devilhand:
DataGridView刷新数据的问题 -
devilhand:
DataGridView刷新数据的问题 -
devilhand:
DataGridView刷新数据的问题
给你一个例子:
BEGIN TRAN --开始一个事务
INSERT INTO PRODUCT(PRODUCTID, PRODUCTNAME) VALUES("0001", "KEYBOARD")
UPDATE PRODUCT SET PRICE=12 WHERE PRODUCTID= "0002"
IF (@ERROR>0)
ROLLBACK --执行语句失败,则回滚到开始处
ELSE
COMMIT --提交事务
没有关系的,你只要加入一个BEGINTRANSCATION和一个ENDTRANSCATION.数据库会将这里面的SQL处理批量执行,当中间出现一条错误时你可以ROLLBACK,这样就会全部都取消掉,也就是说都不会执行。
在数据库中使用事务:
SET XACT_ABORT ON --当产生错误时自动回滚事务
BEGIN TRAN
......
COMMIT TRAN
也可以在代码中使用事务:
SqlTransaction tran = sqlConn.BeginTransaction();
try
{
......
tran.Commit();
}
catch
{
tran.Rollback();
}
很多数据库操作需要进行事务,Asp.net下面进行事务大致有3个层次:
(1)存储过程层次的事务
(2)Ado.Net层次的事务
(3)Asp.Net页面层次的事务
下面分别举例:
首先建立trantest表,字段id(int),test(char)
为id设置主键(利用主键是不允许重复的特性进行事务测试)
假设数据库内存在记录id=1,test='test'
(1)
CREATE PROCEDURE Tran1
as
begin tran
set xact_abort on
Insert Into trantest (id,test)values(1,'test')
Insert Into trantest (id,test)values(2,'test')
commit tran
GO
set xact_abort on 表示遇到错误立即回滚
当然你也可以这么写
CREATE PROCEDURE tran1
as
begin tran
insert into trantest(id,test)values(1,'test')
if(@@error<>0)
rollback tran
else
begin
insert into trantest(id,test)values(2,'test')
if(@@error<>0)
rollback tran
else
commit tran
end
GO
(2)
SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]);
SqlCommand cmd1=new SqlCommand("Insert Into trantest (id,test)values(1,'test')",conn);
SqlCommand cmd2=new SqlCommand("Insert Into trantest (id,test)values(1,'test')",conn);
conn.Open();
SqlTransaction tran=conn.BeginTransaction();
cmd1.Transaction=tran;
cmd2.Transaction=tran;
try
{
cmd1.ExecuteNonQuery();
cmd2.ExecuteNonQuery();
tran.Commit();
}
catch(SqlException except)
{
tran.Rollback();
Response.Write(except.Message);
}
finally
{
conn.Close();
}
(3)
添加引用System.EnterpriseServices.dll
using System.EnterpriseServices;
随便建立一个按钮,在按钮中进行如下操作:
try
{
work1();
work2();
ContextUtil.SetComplete();
}
catch(System.Exception except)
{
ContextUtil.SetAbort();
Response.Write(except.Message);
}
然后在页面中添加2个操作,模拟一下在逻辑层调用不同类中的操作的情况
private void work1()
{
SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]);
SqlCommand cmd1=new SqlCommand("Insert Into trantest (id,test)values(1,'test')",conn);
conn.Open();
cmd1.ExecuteNonQuery();
conn.Close();
}
private void work2()
{
SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]);
SqlCommand cmd2=new SqlCommand("Insert Into trantest (id,test)values(2,'test')",conn);
conn.Open();
cmd2.ExecuteNonQuery();
conn.Close();
}
修改前台页面在<%Page后面添加 Transaction="Required" 即可
方法3:
把所有的SQL都放到一个事务中
BEGINTRANSCATION
。。。
ENDTRANSCATION
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Come_On_steven/archive/2009/05/19/4200382.aspx
发表评论
-
列出备份文件中的逻辑文件名
2012-05-14 12:40 806restore filelistonly from disk= ... -
查看sql死锁
2012-04-09 14:44 850if exists (select * from dbo.sy ... -
SQL SERVER系统控制台启动出错解决方案
2012-03-29 15:58 710关于“MMC不能打开文件C:\Program Files\Mi ... -
判断表是否被改变过
2012-03-15 10:20 778--判断表是否被更改 select checksum_a ... -
在指定的位置添加列
2011-12-27 13:42 871--允许系统标更新 exec sp_configure 'a ... -
SQL不写日志删除数据
2011-12-08 19:46 914TRUNCATE TABLE 表名 -
分页存储过程
2011-11-22 13:33 703create PROCEDURE SP_Paginati ... -
删除表
2011-03-31 19:46 730--删除某表: if exists (sele ... -
查询数据库中的主键和外键
2011-03-21 20:27 1486SELECT 主键表名称=object_name(b.rkey ... -
查询表字段、注释、类型
2010-12-06 21:10 863--查询表字段、注释、类型 select B.name,C. ... -
用sql 查询分析器查询表的字段类型长度和表说明
2010-12-06 21:09 2249SELECT sysobjects.name AS 表名, s ... -
查询数据库中的表和表中的字段
2010-11-05 09:25 704--查询数据库中的全部表 select * from sys ... -
sql分布式查询
2010-11-04 19:28 827--创建链接服务器 exec sp_addlinkedse ... -
SQL单引号的转义
2010-08-23 12:40 3553create proc TestPro (@condito ... -
尝试扩展物理文件时,MODIFY FILE 遇到操作系统错误
2010-08-04 16:10 1802解决办法就是把FAT32的文件系统转化为NTFS的FAT32转 ... -
查看Sql备份的逻辑文件
2010-08-04 16:06 769restore filelistonly from ... -
In的使用
2010-07-29 20:50 744In的使用 declare @id int declare ... -
备份本地的数据库到远程机上
2010-07-21 20:13 1220新建一个backup.sql文件 use test G ... -
每天备份数据表
2010-07-20 20:30 7681、新建一个backuptable.sql 文件 use T ... -
分别统计每组中某一列大于0的值和少于0的值
2010-06-09 22:58 1046数据 select name, sum(case whe ...
相关推荐
sql事物的处理教程,比较适合新手
SQL事务是数据库管理系统中的核心概念,用于确保一组数据库操作的完整性和一致性。它们是数据库操作的基本工作单元,可以理解为一系列相互关联的SQL语句,这些语句作为一个整体被执行。事务的四个基本属性,即ACID...
事物处理,简单的事务处理介绍,适合新手,事物处理,简单的事务处理介绍,适合新手,
在数据库中,索引、主键和约束是至关重要的概念,而SQL(Structured Query Language)则是与数据库交互的语言。 首先,索引是提高数据库查询速度的关键工具。它们类似于书籍的目录,使得数据库能够快速定位到特定的...
### SQL事物的讲解 事务是SQL Server中执行数据库操作的基本单位,保证了一系列操作要么全部成功,要么全部失败。事务具有ACID属性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性...
sql中的事物部分,十分详细,个人觉得很有用哦。
Oracle与SQLServer的SQL语法差异,用简单易懂的语言和实例对Oracle和Sql Server语法之间的差异进行了对比分析,更加适用于入门的人
每个 SQL Server 数据库都有事务日志,用于记录所有事务以及每个事务所做的数据库修改。 你是否想读取和分析SQL Server日志文件 (.ldf) ?正找不到合适的软件呢?以上一款强大的sql数据库日志分析工具,可以轻松打开...
/// 一个存在的 sql 事物处理 /// <param name="commandType">SqlCommand命令类型 (存储过程, T-SQL语句, 等等。) /// 存储过程的名字或者 T-SQL 语句 /// 以数组形式提供SqlCommand命令中用到的参数列表 ///...
它支持多种高级特性,包括SQL Server特有的事物隔离级别、游标、预编译的SQL语句(存储过程)以及批量数据传输等。 在Django这样的Python Web框架中,如果需要连接到SQL Server 10.0,SQL Server Native Client可以...
/// 一个存在的 sql 事物处理 /// <param name="commandType">AseCommand命令类型 (存储过程, T-SQL语句, 等等。) /// 存储过程的名字或者 T-SQL 语句 /// 以数组形式提供AseCommand命令中用到的参数列表 ///...
服务器端代理是保存在SQLServer主机中的一个只读存储过程,他的作用是接受客户端请求,读取在线事物日志块并通过网络传给客户端软件,由客户端软件来读取这些原始的数据块来完成Log Explore所提供的所有功能。...
sql server实验指导 第三版 清华大学出版社,马晓梅 课后实验答案
在ER模型中,实体可以是人、事物或概念,属性是描述实体的特性,关系则连接两个或多个实体。通过ER图,我们可以清晰地看到数据之间的联系,为后续的逻辑结构设计打下基础。 逻辑结构设计通常基于ER模型转换为关系...
服务器端代理是保存在SQLServer主机中的一个只读存储过程,他的作用是接受客户端请求,读取在线事物日志块并通过网络传给客户端软件,由客户端软件来读取这些原始的数据块来完成Log Explore所提供的所有功能。...
本文将深入探讨C#中针对SQL Server、Access以及SQLite这三种不同数据库的处理方式,并着重讲解它们如何支持事务处理。 首先,`SQL Server`是Microsoft提供的一个强大、高性能的关系型数据库管理系统,C#中通常通过`...
SQL Server是Microsoft公司推出的一种关系型数据库管理系统,广泛应用于企业级数据存储和管理。在日常运维中,管理和控制SQL Server服务的启动与关闭是至关重要的,因为它直接影响到系统的性能、资源利用率以及安全...
然后说明数据处理和事物控制(包括插入、删除和更新记录等),以及数据检索和传送(涉及SELECT语言和SQL函数等);最后介绍数据库安全和数据库访问等其他内容。本书始终围绕SQL标准和三大主要RDBMS(Oracle、IBM DB2...
10. SQL Server 事物和锁机制:DBA需要理解事务的ACID属性,以及SQL Server如何使用锁机制来维护数据的一致性和防止并发问题。 11. 分布式查询和调优:在使用分布式数据库时,DBA需要掌握分布式查询的编写方法、...
包括:VB.Net2010源代码(工程文件)、DLL文件、CHM帮助文件。CHM帮助文件中有各函数详细的说明,以及...我经过5~6年的使用,实现用SQL管理复杂的事物,通过SQL Server数据库连接各种应用软件,组装成复杂的应用方案!