这可能在vb.net中
sub Main()
conn.open
transactions = conn.begintransaction("SAMPLE")
insertintotable1()
insertintotable2()
insertintotable3()
transactions.commit
end sub
sub insertintotable1
try
conn = new sql connection(connectionstring)
strsql = sql statement
cmd = new sql command(strsql, conn)
cmd.executenonquery
catch ex as exception
transaction.rollback
end try
end sub
sub insertintotable2
try
conn = new sql connection(connectionstring)
strsql = sql statement
cmd = new sql command(strsql, conn)
cmd.executenonquery
catch ex as exception
transaction.rollback
end try
end sub
sub insertintotable3
try
conn = new sql connection(connectionstring)
strsql = sql statement
cmd = new sql command(strsql, conn)
cmd.executenonquery
catch ex as exception
transaction.rollback
end try
end sub
我的问题是,如果我在第二个表中遇到查询问题而没有事务,则表1数据已经插入。所以我查找了事务,理论上它可以解决这个问题,因为如果出现故障,你可以回滚插件。
答案 0 :(得分:2)
如果你想这样做,你需要实例化一个Sql连接,然后将其传递给将对其进行处理的方法。目前,您正在每个方法中实例化一个新连接,因此每个方法都有自己的事务。