关ado.net的事务处理( 在线等!)

时间:2023-02-20 12:57:29
我看了msdn里有关事务处理的例子,好像事务只能写在sqlcommand里,是不是我的每一步操作都要通过sqlcommand来执行?还有在ado里只要写在connection里就可以了。recordset对应于ado.net里的哪一个对象呀?

14 个解决方案

#1


transaction在ado.net好像还是和connection关联的,但是只能和一个sqlcommand绑定,一个connection只能有一个事务,recordset在ado.net里已经没有这个概念了,ado.net里一种是把数据一次性取出放到dataset,datatable等容器里,然后就和数据库断开连接,一种就是datareader和数据库保持连接,每次读出一条记录,前者牺牲本地内存,后者牺牲数据库资源

#2


那现在写一个事务得非要和sqlcommand写在一起了?能不能不和写在一起呀!

#3


你想和什么写在一起呢?dataset等等都是用command对象和数据库交互的

#4


transaction在ado.net是和connection关联的,只能和一个sqlcommand绑定,一个connection只能有一个事务
recordset在ado.net里相当于dataadapter+dataset

#5


那现在写一个事务得非要和sqlcommand写在一起了?能不能不和写在一起呀?


不能!

#6


谢谢各位!

#7


可以使用存储过程

将事务写在存储过程中

CREATE PROCEDURE aa
as
declare @ReturnError int
begin transaction 
update table .........
  select @ReturnError=@@error
            if @ReturnError!=0
                begin
                    rollback transaction
                    return (@ReturnError)
                end
commit transaction
return(0)

#8


dataset等等都是用command对象和数据库交互的.
在ado里,recordset可以通过connection执行就可以,没想到ado.net还要通过sqlcommand来连呀!

#9


我想要的是通过ado.net来进行事务处理。在数据库里我会用事务处理。

#10


存储过程不能保证客户端到服务器的数据的完整性,

#11


那事务写在哪个里面最好,com+  ,ado.net ,数据库?

#12


Ado也有command对象呀:
set rs as Adodb.recordset
cmd..commandtext="Select..."
cmd.Activeconnection=cn
rs=cmd.execute()

#13


数据库里的事务是最安全的

#14


看来还是要多看一看ado.net方面的东东了.谢谢各位的解释!

#1


transaction在ado.net好像还是和connection关联的,但是只能和一个sqlcommand绑定,一个connection只能有一个事务,recordset在ado.net里已经没有这个概念了,ado.net里一种是把数据一次性取出放到dataset,datatable等容器里,然后就和数据库断开连接,一种就是datareader和数据库保持连接,每次读出一条记录,前者牺牲本地内存,后者牺牲数据库资源

#2


那现在写一个事务得非要和sqlcommand写在一起了?能不能不和写在一起呀!

#3


你想和什么写在一起呢?dataset等等都是用command对象和数据库交互的

#4


transaction在ado.net是和connection关联的,只能和一个sqlcommand绑定,一个connection只能有一个事务
recordset在ado.net里相当于dataadapter+dataset

#5


那现在写一个事务得非要和sqlcommand写在一起了?能不能不和写在一起呀?


不能!

#6


谢谢各位!

#7


可以使用存储过程

将事务写在存储过程中

CREATE PROCEDURE aa
as
declare @ReturnError int
begin transaction 
update table .........
  select @ReturnError=@@error
            if @ReturnError!=0
                begin
                    rollback transaction
                    return (@ReturnError)
                end
commit transaction
return(0)

#8


dataset等等都是用command对象和数据库交互的.
在ado里,recordset可以通过connection执行就可以,没想到ado.net还要通过sqlcommand来连呀!

#9


我想要的是通过ado.net来进行事务处理。在数据库里我会用事务处理。

#10


存储过程不能保证客户端到服务器的数据的完整性,

#11


那事务写在哪个里面最好,com+  ,ado.net ,数据库?

#12


Ado也有command对象呀:
set rs as Adodb.recordset
cmd..commandtext="Select..."
cmd.Activeconnection=cn
rs=cmd.execute()

#13


数据库里的事务是最安全的

#14


看来还是要多看一看ado.net方面的东东了.谢谢各位的解释!